MFC 记录button控件的鼠标事件

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

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_M

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值