今天修改一程序的Bug,修改了半天,终无头绪。后猛然发现是因为双击的时候,也是响应单击消息函数。遂google,发现:Windows系统在系统的双击时间限制里双击鼠标左键调用OnLButtonDBlClk,双击鼠标左键实际上产生4个事件:WM_LBUTTONDOWN WM_LBUTTONUP,然后WM_LBUTTONDBLCK被调用,鼠标释放时的WM_LBUTTONUP消息。
最后还是实现了所需功能,但是感觉还不理想,如果能在PreTranslateMessage函数里面实现就更好了......
void CClickOrDBDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
// AfxMessageBox("one");
MSG message;
DWORD st = GetTickCount();
while(1)
{
if(::PeekMessage(&message, NULL, 0 ,0 , PM_REMOVE))
{
::TranslateMessage(&message);
::DispatchMessage(&message);
if(message.message == WM_LBUTTONDBLCLK)
{
AfxMessageBox("two");
break;
}
}
DWORD et = GetTickCount();
if(et - st > 200)
{
AfxMessageBox("one");
break;
}
}
CDialog::OnLButtonDown(nFlags, point);
}

MFC中有关鼠标单击双击响应的问题相关推荐

  1. MFC中picture控件如何响应鼠标移动?

    MFC中picture控件如何响应鼠标移动? 2011-08-21 21:23 轻若惊鸿 | 浏览 3354 次 硬件网络 我将一个picture控件的属性中的Notify勾上了,但是只能响应鼠标按键 ...

  2. 在GridView中针对鼠标单击的某一独立单元格进行编辑

    原文地址: http://www.codeproject.com/KB/webforms/EditGridviewCells.aspx [原文源码下载] [译者改后源码下载] 作者:Declan Br ...

  3. MFC中,多个Button响应同一个事件

    问题:有10个Button,如何让他们响应同一个事件函数,并且知道是哪个Button触发的 解决方法: 1.让十个Button的资源号连续 2.Dlg.h中添加代码: void   OnButtonC ...

  4. MFC中CSTATIC控件双击全屏/双击恢复

    双击全屏方法有两种 1.双击放大的时候调static控件的父句柄SerParent让控件的父句柄变成桌面,然后再提取桌面的分辨率用movewindow或者setwindowpos改变控件大小.恢复成原 ...

  5. win32中如何区别“鼠标单击”和 “鼠标双击”

    今天在编写一个win32的程序时,遇到了一个问题,那就是在我响应鼠标双击这个事件时,先响应了鼠标单击这个事件.于是下决心解决这个问题.后来才明白,鼠标双击是由两次鼠标的单击组成的,只不过windows ...

  6. 在MFC中创建动态控件的生成与响应

    在MFC中创建动态控件的生成与响应 2008-10-22 作者:风林 网友评论 1 条 点击进入论坛 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建 ...

  7. MFC中动态创建控件以及事件响应实现方法

    本文实例讲述了MFC中动态创建控件以及事件响应实现方法,分享给大家供大家参考.具体实现方法如下: 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态 ...

  8. MFC中动态创建控件以及添加事件响应

    本文实例讲述了MFC中动态创建控件以及事件响应实现方法,分享给大家供大家参考.具体实现方法如下: 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态 ...

  9. JS - 解决鼠标单击、双击事件冲突问题(原生js实现)

    由于鼠标双击时每一次触发双击事件都会引起两次单击事件和一次双击事件,原生的js不提供专门的双击事件. 因为业务原因,双击和单机都绑定了不同的业务,在双击的时候又触发了单机,影响了页面的正常显示 出现问 ...

  10. ruoyi鼠标单击一行选中数据

    最近使用ruoyi框架的时候,在table中选中某行记录,可以用checkbox打对勾选中. 但是有需求想在鼠标单击某行的时候,某行颜色加深并被选中,所以进行了简单实现, 页面在引入必要的jQuery ...

最新文章

  1. 一个“退学生”到CTO的逆袭之路
  2. 酱油和gbt酱油哪个好_酱油不是越贵越好!找到这3个关键词,轻松避开勾兑酱油...
  3. 怎么样武直不打_打HPV疫苗期间意外怀孕?怎么办?
  4. windows C++ 通过WMI获取底层信息
  5. Nand Flash Yaffs系统大量写入数据失败问题的解决方法。
  6. Redis系列五、redis的五种数据结构和相关指令之Set
  7. 六个细节改变提升 Android L 用户体验
  8. Python并发编程之线程中的信息隔离(五)
  9. Pytorch遍历DataLoader时报错BrokenPipeError: [Errno 32] Broken pipe
  10. 基于51单片机ADC0808自动数字电压表仿真数码管显示
  11. 《西游记》《封神榜》各路神仙基本层次图,不要再傻傻分不清楚了
  12. 电脑重装系统后当前安全设置不允许下载该文件
  13. CEPH告警:health_warn 45 pgs degraded;60 pgs unclean; 45 pgs undersized
  14. (域名、主机名、服务名、端口号)名字与地址的转换 (gethostbyname、getservbyname、getaddrinfo、getnameinfo等)
  15. 【计算机毕业设计】512网上商城购物系统
  16. AI电话机器人有没有效果?具体的功能都有哪些?
  17. less中的变量 单位问题
  18. 【Docker】基础(二)
  19. Qt实战:云曦日历篇
  20. php 银行卡归属,银行卡归属地查询

热门文章

  1. csdn前200的大牛
  2. Beautiful Soup
  3. 移动硬盘数据错误循环冗余检查,要怎么恢复资料
  4. 聚(N-异丙基丙烯酰胺)PNIPAM离子微凝胶-聚合物后分散形成的纳米粒子-瑞禧
  5. 《掌控习惯》读书笔记
  6. -TEST 20 for NOIP 。。。(80-300)-----(( ! ))
  7. 左岸语不惊人死不休系列摘录
  8. android fd泄露分析,文件描述符(fd)泄漏排查一篇就够了
  9. PAT A1038 Recover the Smallest Number ——醉里挑灯看剑
  10. 多线程 java实验心得_java多线程编程体会