Пример демонстрирует возможности
использования элементов управления ячейками, а
также изменения с их помощью данных в ячейках.
Определяется класс CGridView
производный от CALXGridView. В его
конструкторе добавляются столбцы (функцией AddCol())
и определяется тип элемента управления
(функция DefineColCtrl()). Ячейки одного из столбцов
определяются как ячейки содержащие изображение
(функция DefineImage())CGridView::CGridView()
{
// Text
DefineColCtrl(AddCol(80,"LeftText", ACFF_LEFT,
AHFF_LEFT),GA_EDITCTRL,WS_CHILD | ES_LEFT | ES_AUTOHSCROLL);
...
// ImageList
int nCol = AddCol(80,"Bitmap
&& Text", ACFF_LEFT, AHFF_LEFT);
DefineColCtrl(nCol,GA_EDITCTRL,WS_CHILD | ES_LEFT | ES_AUTOHSCROLL);
DefineImage(nCol,7,7,DIT_IMGLIST);
// CheckBox
DefineColCtrl(AddCol(90,"CheckBox3State", ACFF_CENTER,
AHFF_CENTER, DFC_BUTTON, DFCS_BUTTON3STATE | DFCS_FLAT),GA_BUTTONCTRL,WS_CHILD |
BS_AUTO3STATE | BS_FLAT);
...
// ComboBox
DefineColCtrl(AddCol(150,"Hide DropDownComboBox", ACFF_LEFT,
AHFF_LEFT),GA_COMBOBOXCTRL,WS_CHILD | CBS_DROPDOWN | WS_VSCROLL);
...
SetGridRowCount(0);
VERIFY(m_ImageList.Create(IDB_BITMAP_IMGLIST, 7, 1,
(COLORREF)0x808000));
}
Также переопределяются
виртуальные функции CreateCellCtrl() (заполняются
выпадающие списки), GetImageListDrawParams() (возвращает
указатель на изображение ячейки и его параметры),
GetCellData() (возвращает данные необходимые для
отображения ячейки) и OnSaveCellData() (сохраняет
изменения). |