zoukankan      html  css  js  c++  java
  • MFC中有关鼠标单击双击响应的问题

    今天修改一程序的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);
    }
    


     

  • 相关阅读:
    第一章初识java
    初识jQuery
    初识jQuery的案例
    jdk的安装与环境变量的配置
    第六章连接和分组查询
    第五章模糊查询和聚合函数
    第四章数据查询基础
    第三章用sql语句操作数据
    第二章用表组织数据
    第一章数据库系统基础
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13318228.html
Copyright © 2011-2022 走看看