用ctrllist.deleteitem...删除所有数据..然后再加载数据~~~~

解决方案 »

  1.   

    http://www.vckbase.com/document/viewdoc/?id=1480
      

  2.   

    重写CListCtrl类,也就是写一个继承至CListCtrl的新类,
    然后重载OnDrawItem( int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct );
    在OnDrawItem内实现重画。
      

  3.   

    重载ListCtrl的NM_CUSTOMDRAW消息,下面给你一段重载的代码:
    下面的代码是实现隔行显示不同的背景颜色。
    void CInfoList::OnCustomDraw(NMHDR *pNMHDR, LRESULT *pResult)
    {
    NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>(pNMHDR);
     
    *pResult = CDRF_DODEFAULT; 
    if (pLVCD->nmcd.dwDrawStage == CDDS_PREPAINT)
    {
    *pResult = CDRF_NOTIFYITEMDRAW;
    }
    else if (pLVCD->nmcd.dwDrawStage == CDDS_ITEMPREPAINT)
    {
    *pResult = CDRF_NOTIFYSUBITEMDRAW;
    }
    else if (pLVCD->nmcd.dwDrawStage == (CDDS_ITEMPREPAINT | CDDS_SUBITEM))
    {
    int nItem = static_cast<int> (pLVCD->nmcd.dwItemSpec);
    int nSubItem = pLVCD->iSubItem; if(nItem % 2){
              pLVCD->clrTextBk = RGB(150,150,150);
      pLVCD->clrText = RGB(0, 100, 150);
            }
            else{
              pLVCD->clrTextBk = RGB(200,200,200);
      pLVCD->clrText = RGB(0, 100, 150);
            }
    pLVCD->clrTextBk = RGB(200,200,200); *pResult = CDRF_SKIPDEFAULT; // We've painted everything.
    }
    }