ALXSoft

Утилиты, исходники, примеры для программистов на Visual C++

Главная
Новости
Компонент ALXGrid
Примеры
Документация
Загрузка
Библиотека alxBASE
Примеры
Документация
Загрузка
Утилита DBFRead
Загрузка
Утилита DBFNavigator
Загрузка
Утилита IDXView
Загрузка
Утилита MDXView
Загрузка
Утилита NDXView
Загрузка
Утилита NTXView
Загрузка
Утилита NSXView
Загрузка
Ссылки

English version

Пример "GridImage"
GridImage window

    Пример демонстрирует использование изображений в ячейках.

    Определяется класс CGridView производный от CALXGridView. В его конструкторе добавляются столбцы (функцией AddCol()) и определяется тип элемента управления (функция DefineColCtrl()). Ячейки столбцов определяются как ячейки содержащие изображение (функция DefineImage()). DIT_BITMAP - bitmap изображение, DIT_ICON - иконка, DIT_IMGLIST - изображение из списка (класса CImageList).

CGridView::CGridView()
{
    // Bitmap
    DefineColCtrl(AddCol(180,"Bitmap && LeftText", ACFF_LEFT, AHFF_LEFT),GA_EDITCTRL,WS_CHILD | ES_LEFT | ES_AUTOHSCROLL);
    DefineImage(0,7,7,DIT_BITMAP);
    // Icon
    DefineColCtrl(AddCol(180,"Icon && CenterText", ACFF_CENTER, AHFF_CENTER),GA_EDITCTRL,WS_CHILD | ES_CENTER | ES_AUTOHSCROLL);
    DefineImage(1,9,9,DIT_ICON);
    // ImageList
    DefineColCtrl(AddCol(180,"ImageList && RightText", ACFF_RIGHT, AHFF_RIGHT),GA_EDITCTRL,WS_CHILD | ES_RIGHT | ES_AUTOHSCROLL);
    DefineImage(2,15,15,DIT_IMGLIST);

    m_BMP.LoadBitmap(IDB_BITMAP);
    VERIFY(m_ImageList.Create(IDB_BITMAP_IMGLIST, 15, 1, (COLORREF)0x808000));
    SetGridRowCount(10000);
}

    Также переопределяются виртуальные функции GetCellData() (возвращает данные необходимые для отображения ячейки), GetImage() (озвращает указатель на изображение ячейки, для ячеек DIT_BITMAP и DIT_ICON ), GetImageListDrawParams() (возвращает указатель на изображение ячейки и его параметры, для ячеек DIT_IMGLIST).

LPARAM CGridView::GetImage(int nCol, int nRow, BOOL bSelected)
{
    if(nCol == 0)
        return (LPARAM)(HBITMAP)m_BMP;
    if(nCol == 1)
        return (LPARAM)m_ImageList.ExtractIcon(bSelected ? 1 : 0);
    return NULL;
}
void CGridView::GetImageListDrawParams(int nCol, int nRow, IMAGELISTDRAWPARAMS* pimldp, BOOL bSelected)
{
    pimldp->himl = m_ImageList.m_hImageList;
    if(bSelected)
        pimldp->fStyle = ILD_SELECTED;
    pimldp->i = 0;
}

Алексей. E-mail: alxsoft@gazinter.net

Hosted by uCoz