派生一个CButton类,怎样实现鼠标在按钮区时,按钮变色。我只能让它变色,鼠标移走,却变不回来了。
有源代码的发一份:[email protected]判断鼠标,我想在按钮类里实现,不想在对话框里实现。

解决方案 »

  1.   

    加上
    ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave)// Handler for WM_MOUSELEAVE
    LRESULT CMyButton::OnMouseLeave(WPARAM wParam, LPARAM lParam)
    {
    //Do CancelHover();
    return 0;
    } // End of OnMouseLeave
      

  2.   

    to lasery(思宇惊凡):vc++里可没有WM_MOUSELEAVE消息。
      

  3.   

    OnMouseMove()
    {
         CWnd *pWnd = GetDlgItem(IDC_BUTTON);
         pWnd->GetWindowRect(&rt);
    //判断是否在按钮区域上
    if(::PtInRect(rt,point))
    {
    pWnd->ShowWindow(SW_HIDE);
                      //变色
    }
             else
             {
                // 还原
              }
    }
      

  4.   

    你们都听好了,我要做的按钮,判断鼠标代码不能放在对话框里,要放在按钮类里。那些说MouseMove,你们试没试过呀,那样只能变一次色,当鼠标移出按钮区的时候,是判断不出来的。
      

  5.   

    WM_MOUSELEAVE鼠标离开按钮
    WM_MOUSEHOVER鼠标在按钮上自己添加消息处理函数
      

  6.   

    to : aaasng(做一个好学生) 
    你脑袋有问题呀,这两个消息是你造的呀。