imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 12.11.2004, 17:03     # 1
Merlyel
Junior Member
 
Регистрация: 10.08.2003
Сообщения: 189

Merlyel Реально крут(а)Merlyel Реально крут(а)Merlyel Реально крут(а)Merlyel Реально крут(а)
Вывод данных в таблицу

Visual C++:
Есть небольшой блок данных, который вычисляется в программе.
Его необходимо занести в простенькую таблицу Подскажите, плз, где можно найти такой элемент может он встроен, просто я не знаю его названия?

Последний раз редактировалось Merlyel; 13.11.2004 в 03:54.
Merlyel вне форума  
Старый 13.11.2004, 13:45     # 2
Al-x
Junior Member
 
Регистрация: 30.03.2003
Адрес: СПб
Сообщения: 162

Al-x МолодецAl-x МолодецAl-x Молодец
В .NET есть DataGrid - создаёшь DataTable, а потом делаешь её DataSource у DataGrid
__________________
640Kbytes should be enough for everything! (c) Bill Gates, 1981.
Все "спасибо" в репутацию

Последний раз редактировалось Al-x; 13.11.2004 в 13:52.
Al-x вне форума  
Старый 14.11.2004, 04:26     # 3
Merlyel
Junior Member
 
Регистрация: 10.08.2003
Сообщения: 189

Merlyel Реально крут(а)Merlyel Реально крут(а)Merlyel Реально крут(а)Merlyel Реально крут(а)
А если не .NET?
Merlyel вне форума  
Старый 14.11.2004, 09:38     # 4
BC Scout
Junior Member
 
Аватар для BC Scout
 
Регистрация: 21.03.2004
Адрес: BC
Сообщения: 157

BC Scout Реально крут(а)BC Scout Реально крут(а)BC Scout Реально крут(а)BC Scout Реально крут(а)
Может это поможет?
http://www.codeproject.com/miscctrl/gridctrl.asp
BC Scout вне форума  
Старый 15.11.2004, 03:22     # 5
Merlyel
Junior Member
 
Регистрация: 10.08.2003
Сообщения: 189

Merlyel Реально крут(а)Merlyel Реально крут(а)Merlyel Реально крут(а)Merlyel Реально крут(а)
Похоже на то, что нужно, щас будем проверять
ЗЫ. А встроенной такой вещи в Vis C++ нету (интересует MFC)
Merlyel вне форума  
Старый 17.11.2004, 16:39     # 6
Duch
Guest
 
Сообщения: n/a

CListCtrl в MFC - стандартный управляющий элемент Windows.
В режиме report как раз отображает таблицу.
 
Старый 21.11.2004, 03:17     # 7
Merlyel
Junior Member
 
Регистрация: 10.08.2003
Сообщения: 189

Merlyel Реально крут(а)Merlyel Реально крут(а)Merlyel Реально крут(а)Merlyel Реально крут(а)
Спасибо, я уже сам набрел на CListCtrl. Ток насчет него 1 (пока) вопрос: почему в конструкторе не получается выполнить функцию InsertColumn (например), а в OnInitDialog получается? Или по-другому (гораздо полезнее ) как заставить это выполниться в конструкторе?

Последний раз редактировалось Merlyel; 21.11.2004 в 03:32.
Merlyel вне форума  
Старый 22.11.2004, 10:53     # 8
Duch
Guest
 
Сообщения: n/a

Вообще все изменения ListCtrl возможны после его создания (когда определен HWND), т.к. все модификации идут через передачу сообщений ему.
Добавление колонки означает добавление нового подэлемента в каждом элементе.
Я добавляю элементы так и все работает:

Добавить эл-т N (2 колонки)

LVITEM li;
li.mask = LVIF_TEXT;
li.iItem = N;
li.iSubItem = 0;
li.pszText = "Text1";
LC.InsertItem( &li );

li.iSubItem = 1;
li.pszText = "Text1";
LC.SetItem( &li );

Когда вызывается конструктор, то интерфейсные элементы Windows еще не созданы, т.е. для твоего ListCtrl еще не создно окно (HWND).
А ф-ия OnInitDialog вызывается после создания окон всех элементов.

Последний раз редактировалось Duch; 22.11.2004 в 10:58.
 
Старый 22.11.2004, 20:02     # 9
Merlyel
Junior Member
 
Регистрация: 10.08.2003
Сообщения: 189

Merlyel Реально крут(а)Merlyel Реально крут(а)Merlyel Реально крут(а)Merlyel Реально крут(а)
Лады, с этим разобрались (пасибо )
Вот этой надписи хватило:
Цитата:
Вообще все изменения ListCtrl возможны после его создания (когда определен HWND), т.к. все модификации идут через передачу сообщений ему.
Тогда еще пара вопросиков:
Можно сделать так, чтобы получилось как бы две колонки под одним заголовком?
Можно ли разбить элемент на 2 строки (т.е. что-то типа вставить \n)?
И что такое группы (например в функции InsertGroup)?

Последний раз редактировалось Merlyel; 22.11.2004 в 20:49.
Merlyel вне форума  
Старый 22.11.2004, 21:46     # 10
Duch
Guest
 
Сообщения: n/a

Рисовать в CCtrlList можно как угодно, если задать стиль OwnerDraw и переопределить ф-ю DrawItem. Но это придется самому отрисовывать все ячейки. Аналогично для заголовков - там есть встроенный HeaderCtrl. Не думаю, что тебе захочется заниматься этим геморроем.
Насчет групп - то я не знаю, что это. В VC++ 6.0 их не было. Посмотрел в MSDN - там написано, что группы для ListCtrl есть только WindowsXP.
 
Старый 22.11.2004, 22:37     # 11
Merlyel
Junior Member
 
Регистрация: 10.08.2003
Сообщения: 189

Merlyel Реально крут(а)Merlyel Реально крут(а)Merlyel Реально крут(а)Merlyel Реально крут(а)
А все-таки вставить \n или другой разделитель строки !в неизмененный ClistCtrl! никак нельзя?
А пример ты не мог бы привести, как
Цитата:
задать стиль OwnerDraw и переопределить ф-ю DrawItem

Последний раз редактировалось Merlyel; 28.11.2004 в 04:41.
Merlyel вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 23:46.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.