键盘
来源:互联网 发布:信捷编程软件 编辑:程序博客网 时间:2024/05/19 23:25
四种击键消息:WM_KEYDOWN、WM_KEYUP、WM_SYSKEYDOWN、WM_SYSKEYUP。一般与ALT键结合的击键会产生系统击键消息,交由Windows处理(DefWindowProc)。对所有四种消息,wParam是虚拟键码(Virtual Key Code),lParam是击键的其他信息。
虚拟键码是相对扫描码而言,键码宏定义在WINUSER.H,VK_开头。
lParam分为6个部分:
0~15位:重复次数。当按住键盘时,如果程序处理速度比Windows设置的响应频率慢时,Windows会把多次按键消息合并成一个消息,并累计重复次数。而WM_KEYUP和WM_SYSKEYUP重复次数总为1。
16~23位:OEM扫描码。除非用到物理层键盘时我们才会用到扫描码。
24位:扩展键标识
29位:Context Code
30位:前次击键状态。对WM_KEYUP和WM_KEYUP,该位总是1。对WM_KEYDOWN和WM_SYSKEYDOWN,如果前一次是释放置0,前次按下置1,表明按下后连续输入(typematic repeat)
31位:Transition State。按键消息为0,释放消息为1。
四种字符消息:WM_CHAR、WM_DEADCHAR、WM_SYSCHAR、WM_SYSDEADCHAR。WM_CHAR和WM_DEADCHAR由WM_KEYDOWN消息转化而来,另两种由WM_SYSKEYDOWN消息转化而来。Dead-Character消息是处理非英文键盘,一般我们只需要处理WM_CHAR消息,而不用管其他字符消息。字符消息的lParam与击键消息的意义相同,而wParam表示ANSI或UNICODE码而不是虚拟按键码。是ANSI还是UNICODE编码,由调用的注册窗口类决定(RegisterClassA对应ANSI,RegisterClassW对应UNICODE),也可用IsWindowUnicode(hwnd)查询。一些功能键、‘CTRL+字符’键也会产生字符消息,如退格键、回车键、退出键等。
字符消息和击键消息处理原则:字符消息中处理字符按键。击键消息处理光标控制键、功能键、插入键、删除键、Ctrl、Shift和Alt。对Tab、Enter、Esc、BackSpace这些既是功能键又会产生字符消息的,一般做为字符消息处理。
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘--外语键盘问题
- iOS键盘监控键盘
- 键盘钩子
- 键盘消息
- 键盘键值
- 很高兴加入序列
- service 详解
- 【C++】Chapter25:模式总结(中)
- 直接调用类成员函数地址 **
- 学3D的第二次心得
- 键盘
- 【数论】 求小于等于 N 的与N互质的所有数的乘积mod N
- 关于Java中,参数传值问题.
- CGIC简明教程
- mysql_store_result()与mysql_use_result()的区别
- 模拟电子技术16 28------——放大电路 动态分析 微变等效电路 介绍
- 建立ARM交叉编译环境 (arm-none-linux-gnueabi-gcc with EABI)
- State Machine
- (转)J2me控制台中文输出乱码问题,XML解析中文乱码问题