要注意些什么地方,继承CButton 用之前把系统画的擦去? 继承cwnd就不需要了?

解决方案 »

  1.   

    CButton是CWnd的子类,继承CButton自然就比继承CWnd多了些约束。就像继承自木头和继承自木头门的区别一样
      

  2.   

    那继承CWnd 比继承CButton要多写一个创建按钮函数,还多啥了?
    指的约束是什么?我重写继承CWnd的函数不得了?
      

  3.   

    MFC 里面能找到CButton的实现源码,楼主可以跟进去看看。
      

  4.   

    约束:这个很明显,比如你在按钮上按下鼠标,然后按着 移开按钮,按钮还处于hover状态。
    但是你继承CWnd,你就得自己实现这个,话说这个很难,假设你用CWnd,你不知道他按着 离开按钮后,什么时候放开?这个时候鼠标不在按钮上,所以按钮不会收到WM_LBUTTONUP消息。
      

  5.   

    主要是CButton针对这种控件处理好了鼠标键盘 Tab等消息,自己从CWnd派生那就需要自己重新模拟处理这些行为
      

  6.   

    CWnd是CButton的父类。
    可以这么理解CButton是为了按钮作用而定制的。功能比CWnd多一点,但是限制也多。你要增强CButton的功能,可以选用现成控件CButtonST给你了链接去欣赏下吧
    CButtonST
      

  7.   

    如果只是实现简单的自绘(改改按钮的背景色什么的),继承CButton写的代码少,继承CWnd写的代码多