奇怪,重载CListCtrl中,如果我重载了OnPaint的话DrawItem就没反映了!
有兴趣的人不妨来探讨一下!

解决方案 »

  1.   

    重载了OnPaint,MFC还会调用DrawItem?,奇怪了
      

  2.   

    重载了OnPaint就不会调用DrawItem了吗?
      

  3.   

    DRAWITEM是由默认的ONPAINT()调用的.你重载ONPAINT了,谁还去调用DRAWITEM.
      

  4.   

    那末我如何在OnPaint中调用DrawItem呢?
    有办法吗?
      

  5.   

    重载了OnPaint,你就可以在其中为所欲为,何必还需要DrawItem呢?一定要的话你大概可以先调用一下基类的OnPaint();
    void CXXX::OnPaint()
    {
    CListCtrl::OnPaint();
    ...
    }
      

  6.   

    不管用的,只要重载了OnPaint即使再在OnPaint里基类的OnPaint方法也不会调用DrawItem了!
    我重载的是CListCtrl的DrawItem,目的是动态改变ListCtrl中的每一行的颜色和高度,这必须重载DrawItem
      

  7.   

    void CXXX::OnPaint()
    {
    CPaintDC dc(this);
    CWnd::DefWindowProc(WM_PAINT, WPARAM(dc.m_hDC), 0);//
    ...
    }
      

  8.   

    看看别人的开高度颜色的例子
    http://www.codeproject.com/listctrl/