![]() |
Вывод данных в таблицу
Visual C++:
Есть небольшой блок данных, который вычисляется в программе. Его необходимо занести в простенькую таблицу :) Подскажите, плз, где можно найти такой элемент:( может он встроен, просто я не знаю его названия? :( |
В .NET есть DataGrid - создаёшь DataTable, а потом делаешь её DataSource у DataGrid
|
А если не .NET?
|
Может это поможет?
http://www.codeproject.com/miscctrl/gridctrl.asp |
Похоже на то, что нужно, щас будем проверять :)
ЗЫ. А встроенной такой вещи в Vis C++ нету (интересует MFC) |
CListCtrl в MFC - стандартный управляющий элемент Windows.
В режиме report как раз отображает таблицу. |
Спасибо, я уже сам набрел на CListCtrl. Ток насчет него 1 (пока) вопрос: почему в конструкторе не получается выполнить функцию InsertColumn (например), а в OnInitDialog получается? Или по-другому (гораздо полезнее :) ) как заставить это выполниться в конструкторе?
|
Вообще все изменения 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 вызывается после создания окон всех элементов. |
Лады, с этим разобрались (пасибо :) )
Вот этой надписи хватило: Цитата:
Можно сделать так, чтобы получилось как бы две колонки под одним заголовком? Можно ли разбить элемент на 2 строки (т.е. что-то типа вставить \n)? И что такое группы (например в функции InsertGroup)? |
Рисовать в CCtrlList можно как угодно, если задать стиль OwnerDraw и переопределить ф-ю DrawItem. Но это придется самому отрисовывать все ячейки. Аналогично для заголовков - там есть встроенный HeaderCtrl. Не думаю, что тебе захочется заниматься этим геморроем.
Насчет групп - то я не знаю, что это. В VC++ 6.0 их не было. Посмотрел в MSDN - там написано, что группы для ListCtrl есть только WindowsXP. |
А все-таки вставить \n или другой разделитель строки !в неизмененный ClistCtrl! никак нельзя?
А пример ты не мог бы привести, как Цитата:
|
| Часовой пояс GMT +4, время: 22:14. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.