【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);
}

转载于:https://www.cnblogs.com/wolfray/p/5547269.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值