Раскраска ListView
От: sig  
Дата: 11.08.03 09:24
Оценка:
Каким образом изменить цвет subitema в режиме LVS_REPORT в зависимости от его значения.
Я пробовал использовать ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw).
Удалось только менять цвет всей строки. Вод код:

void CPolyClientView::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
{
NMLVCUSTOMDRAW* pCustomDraw = (NMLVCUSTOMDRAW*)pNMHDR;

*pResult = CDRF_DODEFAULT;

int i,j;

switch(pCustomDraw->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult |= CDRF_NOTIFYITEMDRAW ;
break;
case CDDS_ITEMPREPAINT :
j = pCustomDraw->nmcd.dwItemSpec;
i = pCustomDraw->iSubItem;
if(i>0)
{
i++;
}
if ((j%2) == 0)
pCustomDraw->clrText = RGB(0, 0, 128);
if ((j%2) == 1)
pCustomDraw->clrText = RGB(0, 128, 128);
break;
case CDDS_ITEMPREPAINT | CDDS_SUBITEM:
i = pCustomDraw->iSubItem;
if(i>0)
{
i++;
}
break;

}
}


сообщение CDDS_SUBITEM никогда не приходит.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.