响应WM_KEYDOWN消息

当一个程序运行成功后按下键盘不能响应按键消息,原因是该消息被WINDOWS内部过程处理了,所以不能响应成功。要捕获我们按下的消息,可以用ProcessMessageFilter(int code,LPMSH lpMsg)虚函数来过滤消息,第二个参数就是指向MSG结够体的指针。

具体方法为:1、在CAPP类增加一个HWND m_wnd变量,并赋为NULL;

                        2、在CAPP类捕获ProcessMessageFilter,判断消息是不是框架或子控件发出的消息,判断子窗口的用IsChild()方法;接着判断发出的是不是WM_KEYDOWN消息,lpMsg>messgae==WM_KEYDOWN;

                       3、将对话框的句柄传到CAPP中进行第2步的判断。

                       4、在程序结束时程序将m_wnd赋空。

 

下面是网上找的键对应的消息:(先收起来,保证有用)

1 VK_LBUTTON 鼠标左键 2 VK_RBUTTON 鼠标右键 3 VK_CANCEL Ctrl+Break(通常不需要处理) 4 VK_MBUTTON 鼠标中键 8 VK_BACK Backspace 9 VK_TAB Tab 12 VK_CLEAR Num Lock关闭时的数字键盘5 13 VK_RETURN Enter(或者另一个) 16 VK_SHIFT Shift(或者另一个) 17 VK_CONTROL Ctrl(或者另一个) 18 VK_MENU Alt(或者另一个) 19 VK_PAUSE Pause 20 VK_CAPITAL Caps Lock 27 VK_ESCAPE Esc 32 VK_SPACE Spacebar 33 VK_PRIOR Page Up 34 VK_NEXT Page Down 35 VK_END End 36 VK_HOME Home 37 VK_LEFT 左箭头 38 VK_UP 上箭头 39 VK_RIGHT 右箭头 40 VK_DOWN 下箭头 41 VK_SELECT 可选 42 VK_PRINT 可选 43 VK_EXECUTE 可选 44 VK_SNAPSHOT Print Screen 45 VK_INSERT Insert 46 VK_DELETE Delete 47 VK_HELP 可选48~57 主键盘上的0~948 48 主键盘上的0 49 49 主键盘上的150 50 主键盘上的2 51 51 主键盘上的3 52 52 主键盘上的4 53 53 主键盘上的5 54 54 主键盘上的6 55 55 主键盘上的7 56 56 主键盘上的8 57 57 主键盘上的965~90 A~Z65 A66 B67 C68 D69 E70 F71 G72 H73 I74 J75 K76 L77 M78 N79 O80 P81 Q82 R83 S84 T85 U86 V87 W88 X89 Y90 Z 91 VK_LWIN 左Windows键 92 VK_RWIN 右Windows键 93 VK_APPS Applications键 96~105 VK_NUMPAD0~VK_NUMPAD9 Num Lock打开时数字键盘上的0~9 106 VK_NULTIPLY 数字键盘上的* 107 VK_ADD 数字键盘上的+ 108 VK_SEPARATOR 可选 109 VK_SUBTRACT 数字键盘上的- 110 VK_DECIMAL 数字键盘上的. 111 VK_DIVIDE 数字键盘上的/ 112~135 VK_F1~VK_F24 功能键F1~F24 144 VK_NUMLOCK Num Lock 145 VK_SCROLL Scroll Lock

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值