我修改了listctrl的Owner draw fixed属性,便于我在OnMeasureItem中修改行高度
但是,现在问题来了,修改了以后,好像重画有点问题,我一启动这个对话框,系统就报错,我看了错误点,是winctrl2.cpp的547行,就是DrawItem的时候,发生了问题,请问各位,谁作过,给点意见

解决方案 »

  1.   

    必须重载DrawItem虚函数,就算你什么都不做。OnMeasureItem
    DrawItem这两个函数必须一起重载。
      

  2.   

    我在对话框里面,如果重载对话框的DrawItem函数,没有用啊,我已经重载过了。难道我要做一个ClistctrlEx类,在这个类里面重载?
      

  3.   

    是虚函数,不是WM_DRAWITEM消息.
      

  4.   

    既然你想自绘ListCtrl,那肯定只能重载CListCtrl的DrawItem虚函数,并像你说的:写一个派生于CListCtrl的类
      

  5.   

    搞定了,我没有派生新类,过两天有空的时候再说吧我是在对话框类里面重载DrawItem函数,
    OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct) 
    {
    if(nIDCtl == IDC_LIST_UNIT)
    {
    //在这里做重画的代码
    }
    }