zoukankan      html  css  js  c++  java
  • 【MFC】在MFC中PreTranslateMessage()的使用方法

    BOOL CSearchuserDlg::PreTranslateMessage(MSG* pMsg)
    
    {
    
         if (pMsg->message==WM_KEYDOWN)  // 判断是否有按键按下
    
         {
    
               switch (pMsg->wParam)
    
               {
    
               case VK_DOWN:     // 表示是方向键中的向下的键
    
                    //add handle code here
    
                    break ;
    
               case VK_UP:      // 表示是方向键中的向上的键
    
                    //add handle code here
    
                    break ;
    
               default :
    
                    break ;
    
               }
    
         }
    
    }
    BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
    
    {
         // 按键相应
         if (pMsg->message == WM_KEYDOWN)
         {
               if (pMsg->wParam == VK_DOWN)
               {
                    // 向下键按下
               }
               else if (pMsg->wParam == VK_RIGHT)
               {
                    // 向右键按下
               }
               else if (pMsg->wParam == VK_LEFT)
              {
                    // 向左键按下
               }
               else if (pMsg->wParam == VK_UP)
               {
                    // 向上键按下
               }
               else if (pMsg->wParam == VK_SHIFT)
               {
                    //VK_LSHIFT 为左 Shift 键按下
                    //Shift 键按下
               }
               else if (pMsg->wParam == VK_CONTROL)
               {
    
                    //Ctrl 键按下
    
               }
    
               else if (pMsg->wParam>=VK_NUMPAD0 && pMsg->wParam<=VK_NUMPAD9)
    
               {
                    // 小键盘数字键按下
    
               }
               else if (pMsg->wParam>=0x30 && pMsg->wParam<=0x39)
               {
                    // 数字键按下 ( 我记得不能使用 VK_0)
               }
               else if (pMsg->wParam>=0x41 && pMsg->wParam<=0x5A)
               {
                    // 键盘字母键按下 ( 我记得不能使用 VK_A)
               }
               else if (pMsg->wParam == VK_BACK)
    
               {
                    // 退格键按下
               }
               else if (pMsg->wParam == VK_DELETE)
               {
                    // 删除键按下
               }
               else if (pMsg->wParam == VK_F1)
               {
                    //F1 键按下
               }
               //return true;  // 使消息不再进行处理
         }
    
         if (pMsg->message == WM_KEYUP)
         {
               if (pMsg->wParam == VK_SHIFT)
    
               {
                    //Shift 键弹起
               }
               else if (pMsg->wParam == VK_CONTROL)
               {
                    //Ctrl 键弹起
               }
               //return true;  // 使消息不再进行处理
         }
         return CDialog::PreTranslateMessage(pMsg);
    }
  • 相关阅读:
    Linux 目录结构
    date命令--修改linux系统时间
    uniq linux下去除重复行命令
    Linux查看程序端口占用情况
    openfire连接登陆优化方案
    hdu 4848 搜索+剪枝 2014西安邀请赛
    经常使用ARM汇编指令
    一维DFT
    C++ lambda 表达式传递的变量默认不可变
    wm命令用法及LCD显示图标大小不正常时解决的方法
  • 原文地址:https://www.cnblogs.com/wolfray/p/5547269.html
Copyright © 2011-2022 走看看