16,514
社区成员
发帖
与我相关
我的任务
分享
//这是一个通知消息, 可以在任何地方接收这个消息, 子类或者控件所在窗口类中都可以.
void CMyListCtrl::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLVCUSTOMDRAW pNMCD = reinterpret_cast<LPNMLVCUSTOMDRAW>(pNMHDR);
*pResult = CDRF_DODEFAULT;
/*CString Str;
Str.Format(TEXT("nmcd.dwDrawStage = %08X"),pNMCD->nmcd.dwDrawStage);
OutputDebugString(Str);*/
switch(pNMCD->nmcd.dwDrawStage)
{
case CDDS_PREPAINT://让其发出项改变的消息.
{
*pResult = CDRF_NOTIFYITEMDRAW;//控制每行的信息.
}
break;
case CDDS_ITEMPREPAINT://按行处理信息
{
COLORREF itemColor[3] = {RGB(255,0,0), RGB(0,255,0), RGB(0,0,255)};
pNMCD->clrTextBk = itemColor[pNMCD->iSubItem];
*pResult = CDRF_DODEFAULT;//只修改行, 则返回defaut.
//*pResult = CDRF_NOTIFYSUBITEMDRAW; //控制每个单元格的信息.
}
break;
case CDDS_SUBITEM |CDDS_ITEMPREPAINT://按项处理信息(单元格)
{
COLORREF itemColor[3] = {RGB(255,0,0), RGB(0,255,0), RGB(0,0,255)};
pNMCD->clrTextBk = itemColor[pNMCD->iSubItem];
*pResult = CDRF_DODEFAULT;
}
break;
}
}