下面是重绘listcontrol行颜色,
然后用
m_List.SetItemData(n, COLOR_GREEN);改写某行颜色,
如何方面的把之前所有修改过的行颜色恢复默认,zui'hao所有行都恢复默认?
void CMyCKTXDlg::OnNMCustomdrawListctrl(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTVCUSTOMDRAW pNMCD = reinterpret_cast<LPNMTVCUSTOMDRAW>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
NMCUSTOMDRAW nmCustomDraw = pNMCD->nmcd;
switch(nmCustomDraw.dwDrawStage)
{
case CDDS_ITEMPREPAINT:
{
if (COLOR_YELLOW == nmCustomDraw.lItemlParam)
{
pNMCD->clrTextBk = RGB(155, 155, 0);
pNMCD->clrText = RGB(255, 255, 255);
}
else if (COLOR_GREEN == nmCustomDraw.lItemlParam)
{
pNMCD->clrTextBk = RGB(0, 250, 0); //背景颜色
pNMCD->clrText = RGB(255, 255, 255); //文字颜色
}
else if (COLOR_DEFAULT == nmCustomDraw.lItemlParam)
{
pNMCD->clrTextBk = RGB(255, 255, 255);
pNMCD->clrText = RGB(0, 0, 0);
}
else
{
pNMCD->clrTextBk = RGB(255, 255, 255);
pNMCD->clrText = RGB(0, 0, 0);
}
break;
}
default:
{
break;
}
}
*pResult = 0;
*pResult |= CDRF_NOTIFYPOSTPAINT; //必须有,不然就没有效果
*pResult |= CDRF_NOTIFYITEMDRAW; //必须有,不然就没有效果
return;
}