处理 WM_KEYDOWN,WM_KEYUP,WM_SYSKEYDOWN,WM_SYSKEYUP 信息时lParam 参数的值的说明
2004-12-26 16:24
344 查看
在处理 WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN 和 WM_SYSKEYUP 信息时,wParam 是被按下健的虚拟键码,而 lParam 参数时保存了比较多的信息,下面是对这些信息的说明:
0 - 15 位是指按键的重复次数,什么是按键的重复次数呢?
假如你按下了字母键 A, 此时系统把信息发给你的程序去处理,但此时你的程序还在处理其他的信息,在还没有处理这个信息之前,你又按下了字母键 A, 这时系统不把在发一个消息到你的应用程序中去,而是在前一个信息的重数次数上面加1,重复次数就变成了2,如果你的程序还未处理这个信息而你又按了字母键 A,这个重复次数就会不停的添加。
在的程序处理此信息时,可以检查一下这个重复次数的值,以便进进行相应的处理,也可以忽略此信息。
16 - 23 位是OEM(Original Equipment Manufacturer,原设备制造商)码,此代码是由键盘硬件生成的代码,此代码表示键盘上的某一个键,这是与硬相关的代码,比如16表示Q键,17表示W键,18表示E键等,但是如果在以后的键盘设计中,把Q键位置放到其他的位置,那16就不表示Q键了,因为这是与设备相关的,所以我们在程序中一盘不使用OEM代码,而是使用虚拟键码,因为这是与设备无关的代码。
24 位:指示一个键是否是一个扩充键,什么是扩充键?
现在我们使用的键盘一般都是101或102键的键盘,原来的键盘是没有这么多键,所以现在多出来的键就是扩充键,当一个键是一个扩充键时,此位的值为1,否则为0。
101键或102键的键盘上,方向键,右边的 alt 键,ctrl 键等都是扩充键。
25,26,27,28 位还未使用。
29 位:这个位的值表示是什么意思还不太明白。
30 位:指示键的先前状态,什么是键的先前状态呢?
假如你按了一个键A,此时发送一条消息到应用程序,发送这条信息之前这个键的状态是按下的还是是未按下的呢,如果是按下的,此位的值就为1,否则为0。
当你第一次按下一个按时,这时这个值为0,因为你按发送消息前你的键未按下,但是当你按下键一段时间不释放他,这此系统就会不停的向程序发送信息,这时这个值就为1,因为发送信息时,这个键是按下的。
31 位:如果键被按下,此位的值为1,否则为0
0 - 15 位是指按键的重复次数,什么是按键的重复次数呢?
假如你按下了字母键 A, 此时系统把信息发给你的程序去处理,但此时你的程序还在处理其他的信息,在还没有处理这个信息之前,你又按下了字母键 A, 这时系统不把在发一个消息到你的应用程序中去,而是在前一个信息的重数次数上面加1,重复次数就变成了2,如果你的程序还未处理这个信息而你又按了字母键 A,这个重复次数就会不停的添加。
在的程序处理此信息时,可以检查一下这个重复次数的值,以便进进行相应的处理,也可以忽略此信息。
16 - 23 位是OEM(Original Equipment Manufacturer,原设备制造商)码,此代码是由键盘硬件生成的代码,此代码表示键盘上的某一个键,这是与硬相关的代码,比如16表示Q键,17表示W键,18表示E键等,但是如果在以后的键盘设计中,把Q键位置放到其他的位置,那16就不表示Q键了,因为这是与设备相关的,所以我们在程序中一盘不使用OEM代码,而是使用虚拟键码,因为这是与设备无关的代码。
24 位:指示一个键是否是一个扩充键,什么是扩充键?
现在我们使用的键盘一般都是101或102键的键盘,原来的键盘是没有这么多键,所以现在多出来的键就是扩充键,当一个键是一个扩充键时,此位的值为1,否则为0。
101键或102键的键盘上,方向键,右边的 alt 键,ctrl 键等都是扩充键。
25,26,27,28 位还未使用。
29 位:这个位的值表示是什么意思还不太明白。
30 位:指示键的先前状态,什么是键的先前状态呢?
假如你按了一个键A,此时发送一条消息到应用程序,发送这条信息之前这个键的状态是按下的还是是未按下的呢,如果是按下的,此位的值就为1,否则为0。
当你第一次按下一个按时,这时这个值为0,因为你按发送消息前你的键未按下,但是当你按下键一段时间不释放他,这此系统就会不停的向程序发送信息,这时这个值就为1,因为发送信息时,这个键是按下的。
31 位:如果键被按下,此位的值为1,否则为0
相关文章推荐
- 键盘消息WM_KEYDOWN/WM_KEYUP、WM_SYSKEYDOWN/WM_SYSKEYUP与字符消息WM_CHAR的区别
- WM_COMMAND和WM_KEYDOWN消息的wParam,lParam参数
- WM_KEYDOWN的lParam参数构造
- WM_KEYDOWN的lParam参数构造
- MFC中键盘消息处理WM_KEYDOWN,WM_KEYUP
- mysql学习之-show table status(获取表的信息)参数说明
- Mongodb 参数说明及常见错误处理
- jsp处理c for循环中取到每一条信息+get方式提交form表单参数拼接问题
- setsockopt()用法(参数详细说明) recv、send的超时处理
- mysql学习之-show table status(获取表的信息)参数说明
- payPal付款处理相关的参数说明-供参考
- setsockopt()用法(参数详细说明) recv、send的超时处理
- 通过给事件处理程序传递this参数,获取事件源对象的引用。单机提交按钮时在信息框中显示用户输入的字符。
- WM消息及其lParam和wParam参数定义
- 第121课: Spark Streaming性能优化:通过摄像头图像处理案例来说明Spark流处理性能评估新方法及性能调优参数测试
- keydown、keypress、keyup事件说明及顺序
- 说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。 分析器错误信息: 无法识别的属性“type”。
- WM_KEYDOWN和WM_KEYUP的使用
- ios中有关声音的处理参数说明
- WM_CHAR、WM_KEYDOWN和WM_SYSKEYDOWN消息