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;
*/
}
}
}
... // обработка остальных сообщений
}
}