解决方案 »

  1.   

    从CButton派生类。重载WM_LBUTONDOWN和WM_LBUTTONUP消息函数。
      

  2.   

    void CMyButton::OnLButtonUp(UINT nFlags, CPoint point) 
    {
    CButton::OnLButtonUp(nFlags, point); TRACE("ButtonUP\n");
    }void CMyButton::OnLButtonDown(UINT nFlags, CPoint point) 
    {
    CButton::OnLButtonDown(nFlags, point); TRACE("ButtonDown\n");
    }
      

  3.   

    我知道
    可是假如我在onlbuttonup()中放了AfxMessageBox()
    的话,点了这个按钮之后,鼠标无论再点什么地方,都会有AfxMessageBox
    这怎么办
      

  4.   

    在里面添加ClientToScreen(&point);
    if(::WindowFromPoint(point)==this->m_hWnd)
    ::MessageBox(NULL,"按下","",0);
    ScreenToClient(&point);
    CButton::OnLButtonDown(nFlags, point);
      

  5.   

    void CMyButton::OnLButtonUp(UINT nFlags, CPoint point) 
    {
    CButton::OnLButtonUp(nFlags, point); if(GetDlgCtrlID() == 你指定的按钮)
             {
                   执行鼠标送开后的操作.
             }
    }void CMyButton::OnLButtonDown(UINT nFlags, CPoint point) 
    {
    CButton::OnLButtonDown(nFlags, point); if(GetDlgCtrlID() == 你指定的按钮)
             {
                   执行鼠标按下后的操作.
             }
    }