博客
关于我
MFC 判断单击双击
阅读量:797 次
发布时间:2023-02-08

本文共 1113 字,大约阅读时间需要 3 分钟。

BOOL CXXXWnd::PreTranslateMessage(MSG* pMsg)  {    pClientPoint = pMsg->pt;      MSG message;      DWORD st = GetTickCount();      while(1)      {          if(::PeekMessage(&message, NULL, 0 ,0 , PM_REMOVE))          {              ::TranslateMessage(&message);              ::DispatchMessage(&message);              if(message.message == WM_LBUTTONDBLCLK)              {                  //双击事件                  break;              }              DWORD et = GetTickCount();              if(et - st > GetDoubleClickTime())              //双击时间间隔为500ms              {                  pClientPoint = pMsg->pt;                  this->ScreenToClient(&pClientPoint);                  if (rectCoord.PtInRect(pClientPoint))                  {                  }                  else                  {                  }              }              break;          }      }  }

这段代码定义了一个窗口类的PreTranslateMessage函数,主要用于处理窗口消息。函数首先将客户点设置为消息的坐标点,然后创建一个MSG结构体。接着,通过一个循环来处理消息。

在循环内部,函数首先检查是否有消息可读。如果有消息,则进行翻译和派发。如果是双击事件,则跳出循环。否则,计算当前时间戳并与之前记录的时间戳比较,判断是否超过双击时间间隔。如果超过,则将客户点转换为窗口客户坐标,并检查点是否在指定的区域。

这段代码的注释清晰,逻辑结构合理,适合用于窗口类的消息处理。

转载地址:http://gryfk.baihongyu.com/

你可能感兴趣的文章
mac地址随机变化的解决方法(安卓手机通用)不用ROOT
查看>>
Mac备忘录内容突然全部消失恢复
查看>>
Mac安装FastDFS
查看>>
Mac安装Maven
查看>>
Mac实现远程服务器登录管理
查看>>
mac常用命令
查看>>
Mac打包dmg文件(更换背景图)
查看>>
mac更新后 homestead 无法使用
查看>>
mac环境安装docker
查看>>
MAC生成公钥私钥、PKCS1 转 PKCS8
查看>>
Mac电脑怎么读写不了移动硬盘?解决苹果电脑不能读写移动硬盘问题
查看>>
Mac电脑生成git的公私钥(拉取代码更便捷)
查看>>
MAC解决端口号被占用
查看>>
mac配置自定义域名
查看>>
Magentic-One、AutoGen、LangGraph、CrewAI 或 OpenAI Swarm:哪种多 AI 代理框架最好?
查看>>
magento1给customer添加自定义属性
查看>>
Magic Leap是快出产品的节奏,已开放内容开发者注册通道
查看>>
MajorDoMo thumb.php 未授权RCE漏洞复现(CNVD-2024-02175)
查看>>
Majorization-Minimization (MM) 和 Successive Convex Approximation (SCA)
查看>>
makefile 打印
查看>>