如何区分一个按键是扩展键还是普通键
空格键 虚拟码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.