| imho.ws |
![]() |
|
|
|
# 1 |
|
Junior Member
Регистрация: 10.08.2003
Сообщения: 189
![]() ![]() ![]() ![]() |
Вывод данных в таблицу
Visual C++:
Есть небольшой блок данных, который вычисляется в программе. Его необходимо занести в простенькую таблицу Подскажите, плз, где можно найти такой элемент может он встроен, просто я не знаю его названия?
Последний раз редактировалось Merlyel; 13.11.2004 в 03:54. |
|
|
|
|
# 2 |
|
Junior Member
Регистрация: 30.03.2003
Адрес: СПб
Сообщения: 162
![]() ![]() ![]() |
В .NET есть DataGrid - создаёшь DataTable, а потом делаешь её DataSource у DataGrid
__________________
640Kbytes should be enough for everything! (c) Bill Gates, 1981. Все "спасибо" в репутацию
Последний раз редактировалось Al-x; 13.11.2004 в 13:52. |
|
|
|
|
# 4 |
|
Junior Member
Регистрация: 21.03.2004
Адрес: BC
Сообщения: 157
![]() ![]() ![]() ![]() |
Может это поможет?
http://www.codeproject.com/miscctrl/gridctrl.asp |
|
|
|
|
# 7 |
|
Junior Member
Регистрация: 10.08.2003
Сообщения: 189
![]() ![]() ![]() ![]() |
Спасибо, я уже сам набрел на CListCtrl. Ток насчет него 1 (пока) вопрос: почему в конструкторе не получается выполнить функцию InsertColumn (например), а в OnInitDialog получается? Или по-другому (гораздо полезнее
) как заставить это выполниться в конструкторе?
Последний раз редактировалось Merlyel; 21.11.2004 в 03:32. |
|
|
|
|
# 8 |
|
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. |
|
|
# 9 | |
|
Junior Member
Регистрация: 10.08.2003
Сообщения: 189
![]() ![]() ![]() ![]() |
Лады, с этим разобрались (пасибо
)Вот этой надписи хватило: Цитата:
Можно сделать так, чтобы получилось как бы две колонки под одним заголовком? Можно ли разбить элемент на 2 строки (т.е. что-то типа вставить \n)? И что такое группы (например в функции InsertGroup)? Последний раз редактировалось Merlyel; 22.11.2004 в 20:49. |
|
|
|
|
|
# 10 |
|
Guest
Сообщения: n/a
|
Рисовать в CCtrlList можно как угодно, если задать стиль OwnerDraw и переопределить ф-ю DrawItem. Но это придется самому отрисовывать все ячейки. Аналогично для заголовков - там есть встроенный HeaderCtrl. Не думаю, что тебе захочется заниматься этим геморроем.
Насчет групп - то я не знаю, что это. В VC++ 6.0 их не было. Посмотрел в MSDN - там написано, что группы для ListCtrl есть только WindowsXP. |
|
|
# 11 | |
|
Junior Member
Регистрация: 10.08.2003
Сообщения: 189
![]() ![]() ![]() ![]() |
А все-таки вставить \n или другой разделитель строки !в неизмененный ClistCtrl! никак нельзя?
А пример ты не мог бы привести, как Цитата:
Последний раз редактировалось Merlyel; 28.11.2004 в 04:41. |
|
|
|