Paz*_*Paz 5 c++ windows keyboard keystroke
在C++ Windows环境中引用键盘控件时0x80代码的含义是什么?
例如,
if(GetKeyState('K') & 0x80) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
感谢大家!
更新
一连串的downvotes促使我进一步调查这一点.以下是工作的返回值(以十六进制表示)GetKeyState.我没有完全获得键的切换属性,k但我假设有一些默认状态它切换.
0 Default State, key up
ff80 Default state, key down
1 Toggled, key up
ff81 Toggled, key down
Run Code Online (Sandbox Code Playgroud)
所以0xff80加每当高位需要设置和低位有道理.所以现在我们知道为什么这种0x80方法有效 - 因为低位字节的高位也被设置了!
老答案
GetKeyState返回一个SHORT位置,如果高位是,1则表示密钥已启动.该位与与操作0x80只是检查,如果该位是1因为二进制0x80是10000000.
因此,声明GetKeyState('K') & 0x80将返回0x80如果返回值的最高位GetKeyState('K')是1和0若高阶位0.
| 归档时间: |
|
| 查看次数: |
8772 次 |
| 最近记录: |