listctrl根据不同的内容设置不同的颜色
自绘listctrl,并添加ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnNMCustomdraw) 消息关联
void CMyList::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: Add your control notification handler code here
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR;
if(lplvcd->nmcd.dwDrawStage == CDDS_PREPAINT)
*pResult = CDRF_NOTIFYITEMDRAW;
if(lplvcd->nmcd.dwDrawStage == CDDS_ITEMPREPAINT)
{
CString strTemp =GetItemText(lplvcd->nmcd.dwItemSpec,5);
if(strTemp.Compare(_T("UDP"))==0)
{
lplvcd->clrText = RGB(0, 0, 255);
lplvcd->clrTextBk=RGB(255,174,201);
}
else if (strTemp.Compare(_T("TCP"))==0)
{
lplvcd->clrText = RGB(0, 0, 255);
lplvcd->clrTextBk=RGB(188,234,0);
}
else if (strTemp.Compare(_T("ARP"))==0)
{
lplvcd->clrText = RGB(0, 0, 255);
lplvcd->clrTextBk=RGB(255,0,0);
}
else
{
lplvcd->clrText = RGB(0, 0, 255);
lplvcd->clrTextBk=RGB(255,255,0);
}
*pResult = CDRF_DODEFAULT;
}
}