1、添加消息
在BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间添加消息映射
ON_NOTIFY(NM_CUSTOMDRAW,IDC_LIST_SHOWSTATE,OnCustomdrawList)
2、添加声明
在头文件AFX_MSG之间添加
afx_msg void OnCustomdrawList(NMHDR*, LRESULT*);
3、添加实现代码
在窗体类的实现文件添加
void CYourDlg::OnCustomdrawList(NMHDR* pNMHDR,LRESULT* pResult)
{
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>(pNMHDR);
*pResult = 0;
if (CDDS_PREPAINT==pLVCD->nmcd.dwDrawStage)
{
*pResult=CDRF_NOTIFYITEMDRAW;
}
else if(CDDS_ITEMPREPAINT==pLVCD->nmcd.dwDrawStage)
{
*pResult=CDRF_NOTIFYSUBITEMDRAW;
}
else if((CDDS_ITEMPREPAINT|CDDS_SUBITEM)==pLVCD->nmcd.dwDrawStage)
{
int nItemSpec = pLVCD->nmcd.dwItemSpec;
int nSubItem = pLVCD->iSubItem;
//根据nItemSpec ,nSubItem 分别处理
//设置背景色调用pLVCD->clrTextBk=RGB(?,?,?);
//例如隔行换色
if(nItemSpec %2)
pLVCD->clrTextBk=RGB(255,0,0);
else
pLVCD->clrTextBk=RGB(0,255,0);
*pResult=CDRF_DODEFAULT;
}
}