隔行不同颜色的话就不容易看混

解决方案 »

  1.   

    重载CListCtrl, 实现NM_CUSTOMDRAW消息处理:ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)
    void CMyListCtrl::OnCustomDraw(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 nItem = static_cast<int> (pLVCD->nmcd.dwItemSpec);
    int nSubItem = pLVCD->iSubItem; CListCtrl* pList=(CListCtrl*)CWnd::FromHandle(m_hWnd);
    CString strText=pList->GetItemText(nItem,1); if(nItem%2==0)
    pLVCD->clrTextBk=RGB(255,255,255);
    else
    pLVCD->clrTextBk=RGB(232,232,232);        *pResult = CDRF_DODEFAULT;
    }
    }
      

  2.   

    学习楼上的方法不过现在已经有些封装好的第三方库,功能更强大
    比如说bcg
    楼主可以看一下www.bcgsoft.com
      

  3.   

    http://www.codeguru.com/Cpp/controls/listview/backgroundcolorandimage/article.php/c1093/
      

  4.   

    void CReportCtrl::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR; if (lplvcd->nmcd.dwDrawStage == CDDS_PREPAINT)
    {
        *pResult = CDRF_NOTIFYITEMDRAW;
    }
        else if (lplvcd->nmcd.dwDrawStage == CDDS_ITEMPREPAINT)
    {
        *pResult = CDRF_NOTIFYSUBITEMDRAW;
    }
        else if (lplvcd->nmcd.dwDrawStage == (CDDS_ITEMPREPAINT | CDDS_SUBITEM))
        {
    if (lplvcd->nmcd.dwItemSpec%2)
    lplvcd->clrTextBk = RGB(224, 241, 255);
    else
    lplvcd->clrTextBk = RGB(224,111, 255);
    *pResult = CDRF_DODEFAULT;
    }
    }