对窗口指定控件增加右键响应

如对话框中添加了一个button按钮:IDC_BUT1

那么如何添加对其的鼠标右键的响应呢?

 

首先在对话框所在类CXXXDlg里面重载 PreTranslateMessage(MSG *pMsg)

接着在CXXXDlg.cpp中添加代码,如下:

BOOL CXXXDlg::PreTranslateMessage(MSG *pMsg)

{

   if(pMsg->message==WM_RBUTTONDOWN) //可以改为任何消息

   {

        CRect rect;

        ::GetWindowRect(GetDlgItem(IDC_BUT1)->GetSafeHwnd(),&rect);   //得到button所在的rect

        POINT pt;

        ::GetCursorPos(&pt);             //得到鼠标动作的位置

        if (PtInRect(&rect,pt)){        //判断鼠标动作是否在button范围之内     

              AfxMessageBox(_T("右键单击"));

       }

   }

    return CDialog::PreTranslateMessage(pMsg);

}

posted @ 2019-10-24 21:56  Reboost  阅读(127)  评论(0)    收藏  举报