我想让按钮在不可用状态时也能知道鼠标移动到它上面了.知道怎么做的兄弟指点一下啊!

解决方案 »

  1.   

    一个办法:
    和按钮重叠的位置,放一个透明的控件,按钮disabled以后,鼠标消息可以通过这个透明隐藏控件捕捉,在响应中做按钮相关操作
      

  2.   

    自己做一个按钮(继承CButton),使能状态改为灰色(重载DrawItem)
    除了鼠标移动事件以外其他事件全部屏蔽(通过OnCommand实现或者重载PretranslateMsg)就可以了
    个人认为最省事
      

  3.   

    在窗口的OnMouseMove消息映射中CRect rt;
    GetDlgItem(ID_BUTTON)->GetWindowRect(rt);
    if(rt.PtInRect(point))
    {
          //do your work
    }
      

  4.   

    不好意思,少了个东西,取到矩形后要转化一下坐标。
    在if语句前加上 ScreenToClient(rt);