我用cbutton创建了一个派生类 将一个button控件属性改为owner draw后建立一个关联变量,调试就处于崩溃状态,找不到原因 ,麻烦各位大神帮帮忙。

解决方案 »

  1.   

    必须重写CButton派生类的OnDraw()函数,否则就会报错!
      

  2.   

    嗯  找到问题了   必须重写CButton派生类的虚函数drawitem(),不加就不行 ,里面有一个WM_drawitem,一直加成了这个。非常感谢!
      

  3.   

    需要重写DrawItem虚函数~
      

  4.   

    崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止
      

  5.   

    自绘Button,不建议通过处理owner draw进行。而应该直接处理WM_PAINT消息。
    因为Checkbox和radio button也是CButton。当处理了owner draw后,Checkbox和radiobutton的Checked状态,就无效了。
      

  6.   

    勾选状态还是要自己去获取的,ODS_XXX 并不会告诉你这些状态。你正常时怎么画按钮的,对于勾选控件,就先判断状态,然后再写两个画按钮逻辑,一个画勾选的,一个画未勾选的。
      

  7.   

    网上很多现成的button类,可以下载下来研究一下