首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么区分一个按键是扩展键还是普通键

2012-02-25 
如何区分一个按键是扩展键还是普通键空格键虚拟码0x20是普通键windows键虚拟码0x5b是扩展键有没好的区分的

如何区分一个按键是扩展键还是普通键
空格键     虚拟码0x20       是普通键
windows键     虚拟码0x5b   是扩展键

有没好的区分的函数或者方式   比如     bool   IsEx(UINT   virtual_key_e)

[解决办法]
你把所有的按键的虚拟码值都拿到了

然后判断码值在多少之间的是普通键 其它的是扩展键

几个if else不就完事啦
[解决办法]
在 WM_CHAR

WPARAM wParam
LPARAM lParam;

消息里

lParam 参数

lParam
Specifies the repeat count, scan code, extended-key flag, context code, previous key-state flag, and transition-state flag, as shown in the following table.
0-15
Specifies the repeat count for the current message. The value is the number of times the keystroke is autorepeated as a result of the user holding down the key. If the keystroke is held long enough, multiple messages are sent. However, the repeat count is not cumulative.
16-23
Specifies the scan code. The value depends on the OEM.
24
Specifies whether the key is an extended key, such as the right-hand ALT and CTRL keys that appear on an enhanced 101- or 102-key keyboard. The value is 1 if it is an extended key; otherwise, it is 0.
25-28
Reserved; do not use.
29
Specifies the context code. The value is 1 if the ALT key is held down while the key is pressed; otherwise, the value is 0.
30
Specifies the previous key state. The value is 1 if the key is down before the message is sent, or it is 0 if the key is up.
31
Specifies the transition state. The value is 1 if the key is being released, or it is 0 if the key is being pressed.

热点排行