假设在对话框中添加了一个button按钮:IDC_BUTTON1
那么如何添加对其的鼠标右键的响应呢?
首先在对话框所在类CXXXDlg里面重载 PreTranslateMessage(MSG *pMsg)
接着在CXXXDlg.cpp中添加代码,如下:
BOOL CXXXDlg::PreTranslateMessage(MSG *pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if(pMsg->message==WM_RBUTTONDOWN) //可以改为任何消息
{
CRect r;
::GetWindowRect(GetDlgItem(IDC_00)->GetSafeHwnd(),&r); //得到button所在的rect
POINT pt;
::GetCursorPos(&pt); //得到鼠标动作的位置
if (PtInRect(&r,pt)) //判断鼠标动作是否在button范围之内
{
AfxMessageBox(_T("右键单击"));
}
}
return CDialog::PreTranslateMessage(pMsg);
}