1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

раскраска Clistctrl

Тема в разделе "С и С++", создана пользователем zenia, 18 июл 2006.

Статус темы:
Закрыта.
  1. zenia

    zenia Гость

    Репутация:
    0
    Подскажите, плз
    Как в CListCtrl сделать, что бы текст различных записей отображался разными цветами?
     
  2. Maxx

    Maxx Гость

    Репутация:
    0
    для изменения цвета текста в режиме report надо обрабатывать сообщение WM_NOTIFY с кодом NM_CUSTOMDRAW, в параметре LPARAM передается указатель на структуру NMLVCUSTOMDRAW, поле dwDrawStage которой указывает стадию рисования
    кусок кода:

    Код:
    LRESULT MainWndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
    {
    switch (message)
    {
    case WM_NOTIFY:
    {
    LPNMHDR pnmh = (LPNMHDR)lparam;
    if (pnmh->hdr.code == NM_CUSTOMDRAW)
    {
    LPNMLVCUSTOMDRAW pnmlvcd = (LPNMLVCUSTOMDRAW)lparam;
    switch (pnmlvcd->nmcd.dwDrawStage)
    {
    case CDDS_PREPAINT:
    return CDRF_NOTIFYITEMDRAW;	// рисовать каждый элемент
    case CDDS_ITEMPREPAINT:
    // цвет текста для строки (номер строки в pnmlvcd->nmcd.dwItemSpec)
    pnmlvcd->clrText = RGB(...);	  
    pnmlvcd->clrTextBk = RGB(...);	// цвет фона
    return CDRF_NEWFONT;
    /*
    если надо менять цвет текста для каждого subitem'а (его номер в pnmlvcd->iSubItem)
    case (CDDS_ITEMPREPAINT | CDDS_SUBITEM);
    ...
    return CDRF_NEWFONT;
    */
    }
    }
    }
    ...			 // обработка остальных сообщений
    }
    }
     
  3. artiom_kh

    artiom_kh Гость

    Репутация:
    0
    Можно также юзать ownerdraw-отрисовку (тогда контрол должен быть создан со стилем LVS_OWNERDRAWFIXED)
     
Загрузка...
Похожие Темы - раскраска Clistctrl
  1. rabbit
    Ответов:
    0
    Просмотров:
    1.502
  2. vbs
    Ответов:
    7
    Просмотров:
    5.746
Статус темы:
Закрыта.

Поделиться этой страницей