Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Таблица


Автор: devmstr 26.12.2005, 22:39
Как я понял, лучше всего(проще) сделать таблицу с помощью ListCtrl.
Может кто-нибудь дать пример на WinApi как это сделать?

Автор: And234 28.12.2005, 09:29
Сам с этим сижу.
Jтрыл следующее.
Как таблицу данные в ListView (с флагом репорт (четвертый)) отображать можно, но только с ограниченными свойствами. Это список значений с дополнительной информацией.
Использовать можно но не лежит у меня. Ищу альтернативу.
Пример в MSDN sdk\winui\commctrl\vlistvw
Хотелось бы видеть хотябы возможности сортировки по разным столбцам.
Это конечто можно и лист вив но ... smile
Как сделать реальную, полноценную таблицу, притом средствами WINAPI?

Автор: OverBug 17.4.2006, 00:49
Код


LVCOLUMN lvColumn;
LVITEM lvItem;
char szString[90],szString2[90];
...
        case IDM_ADDROW:
            lvItem.mask = LVIF_TEXT;//|LVIF_STATE;
            lvItem.iItem = iIndex;
            lvItem.stateMask = 0;
            lvItem.state = 0;
            GetWindowText(GetDlgItem(hDlg,IDC_EDIT1),szString,90);
            lvItem.pszText = szString;
            if (SendMessage(GetDlgItem(hDlg,IDC_LIST1),LVM_INSERTITEM,0,(LPARAM)&lvItem)!=-1) iIndex++ ;
            return 0;
        case IDM_ADDCOLUMN:
            GetWindowText(GetDlgItem(hDlg,IDC_EDIT2),szString2,90);
            lvColumn.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT |LVCF_SUBITEM;
            lvColumn.cx = 50;
            lvColumn.fmt = LVCFMT_LEFT;
            lvColumn.iSubItem = iColumn++;
            lvColumn.pszText = szString2;
            ListView_InsertColumn(GetDlgItem(hDlg,IDC_LIST1), iColumn,&lvColumn);
            return 0;
...
 

Для добавления субитемов (данных в др. столбца той же строки) используй сообщение LVM_SETITEMTEXT 

Автор: Earnest 17.4.2006, 18:15
Полноценную таблицу (с редактированием любых ячеек) на основе лист-контрола сделать можно... но не нужно (его свойства скорее мешают, чем помогают). Обычно их делают с нуля. Поищи на codeproject - там есть примеры разных таблиц. Хотя, боюсь, в основном на MFC. Сортировка по разным столбцам для ListView там точно была, хотя это уж совсем элементарно сделать... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)