近來,有件困事繞眷我,請各位高手幫忙看看,我用MFC的CListCtrl建立了個ListCtrl.想改變每條記錄的背景色,所以就在父窗口映射了個ON_NOTIFY通知消息.按照MSDN說明:  
afx_msg  void  memberFxn(  NMHDR  *  pNotifyStruct,  LRESULT  *  result  )  
{  
           LPNMLVCUSTOMDRAW  lpNMCustomDraw  =  (LPNMLVCUSTOMDRAW)  pNotifyStruct;  
             
           switch  (lpNMCustomDraw->nmcd.uItemState)  
           {  
           case  CDDS_ITEMPREPAINT:  
                       //...  
                       break;  
           case  else:  
                       //經調試,可每次的值都為0;  
                       //只有當在選取某條記錄時,才改變為0x12FA04  
                       //只出現以上兩種值,永遠都無法到達CDDS_ITEMPREPAINT下.不知為什麼?  
           }  
}

解决方案 »

  1.   

    m_ListCtrl.SetBkColor(RGB(177, 151, 240));
    m_ListCtrl.SetTextColor(RGB(0,0,0));
    m_ListCtrl.SetTextBkColor(RGB(177, 151, 240));
      

  2.   

    m_ListCtrl.SetBkColor(RGB(177, 151, 240));
    m_ListCtrl.SetTextColor(RGB(0,0,0));
    m_ListCtrl.SetTextBkColor(RGB(177, 151, 240));可以设置颜色。
      

  3.   

    但Tks.這要將會更改所有的記錄.
    我要根據一定條件設置其中某條記錄的前景色和背景色.
      

  4.   

    楼主留mail,给你一个xlist,可能对你有帮助
    或者去
    http://www.vccode.com/file_show.php?id=668&select=668
    看看
      

  5.   

    BEGIN_MESSAGE_MAP(MyListCtrl, CListCtrl)
         ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)
    END_MESSAGE_MAP()
    然后自己写OnCustomDraw
    void MyListCtrl::OnCustomDraw(NMHDR *pHdr, LRESULT *pResult)
    {
        LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pHdr;switch(lplvcd->nmcd.dwDrawStage)
        {
        case CDDS_PREPAINT:
        // Request prepaint notifications for each item.
        *pResult = CDRF_NOTIFYITEMDRAW;
        break;
    case CDDS_ITEMPREPAINT: // Requested notification
        if(lplvcd->nmcd.dwItemSpec % 2)
        {
                lplvcd->clrText = RGB(0, 0, 0);
                lplvcd->clrTextBk = RGB( 255, 0, 0 );
        }
        *pResult = CDRF_DODEFAULT;
        break;
        }
    ......//加入代码
    }
      

  6.   

    http://www.vckbase.com/code/downcode.asp?id=2146http://www.vckbase.com/code/downcode.asp?id=1920http://www.vckbase.com/document/viewdoc/?id=891http://www.codeproject.com/listctrl/xlistctrl.asp
    http://www.codeproject.com/listctrl/ReportControl.aspXListCtrl_demo.zip:
    http://www.codeproject.com/listctrl/xlistctrl.asp  20040331084148_Abc.rar:
    http://www.vccode.com/file_show.php?id=2521
      

  7.   

    codeproject那个例子不错,同楼上。
      

  8.   

    多謝各位大俠的熱情相助,問題是解決了,但也有一個疑問:按照MSDN的說明,在向父窗口的通知消息WM_NOTIFY中都能正確的寫入wParam和lParam值,MFC的CListCtrl為什麼向你窗口發送的wParam和lParam怎麼就變了呢?是不是CListCtrl處理了該消息?謝謝!