• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

раскраска Clistctrl

  • Автор темы Автор темы zenia
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Z

zenia

Подскажите, плз
Как в CListCtrl сделать, что бы текст различных записей отображался разными цветами?
 
для изменения цвета текста в режиме 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;
*/
}
}
}
...			 // обработка остальных сообщений
}
}
 
Можно также юзать ownerdraw-отрисовку (тогда контрол должен быть создан со стилем LVS_OWNERDRAWFIXED)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab