1 这里的鼠标事件包括 "单击" "双击" "右击" "移动"
2 button有自己的单击事件响应函数, 但是不能区分单击还是双击, 需要自己做判断
void CvcDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
MSG message;
DWORD st = GetTickCount();
while(1)
{
if(::PeekMessage(&message, NULL, 0 ,0 , PM_REMOVE))
{
::TranslateMessage(&message);
::DispatchMessage(&message);
if(message.message == WM_LBUTTONDBLCLK)
{
CString str("double click");
MessageBox(str);
break;
}
}
DWORD et = GetTickCount();
if(et - st > 200)
{
CString str("one click");
MessageBox(str);
break;
}
}
//CDialog::OnLButtonDown(nFlags, point);
}
3 button控件默认没有move事件,(在classwizard中添加事件响应函数) WM_MOUSEMO

本文介绍了如何在MFC中处理button控件的鼠标事件,包括单击、双击、右击和移动。由于button的默认事件无法区分单击和双击,需要在PreTranslateMessage函数中进行定制化判断。同时,由于button控件没有内置的移动事件,可以通过处理WM_MOUSEMOVE消息来实现,但需注意避免频繁触发。文章还列举了与鼠标事件相关的Windows消息常量。
3489

被折叠的 条评论
为什么被折叠?



