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;  
}  

}

posted on 2015-03-23 17:09  兴路  阅读(208)  评论(0编辑  收藏  举报