c++ - GetKeyState 是否生成输入消息?
问题描述
const int KEY_0 = 0x30;
void main() {
byte keyState[256];
ZeroMemory(keyState, sizeof(byte) * 255);
byte pressed = (keyState[KEY_0] & 0x80);
while (pressed == false)
{
ZeroMemory(keyState, sizeof(byte) * 255);
//GetKeyState(0); // with this line, works well. It makes GetKeyboardState(KEY_0) works.
//GetAsyncKeyState(KEY_0);
GetKeyboardState(keyState);
pressed = (keyState[KEY_0] & 0x80);
};
}
我了解到此代码不起作用,因为GetKeyboardState()
在处理键盘消息后生成了值。由于没有生成键盘消息,因此循环不会停止。这就是我的理解。
MSDN说:
应用程序调用 GetKeyState 以响应键盘输入消息。此函数在生成输入消息时检索键的状态。
我很困惑,因为上面的代码GetKeyState(0);
运行良好,这意味着GetKeyState()
关于键盘的消息?
我怎么能理解GetKeyState()
和GetKeyboardState()
?
解决方案
推荐阅读
- r - 粘贴函数以在 r 中添加反斜杠
- python - 使用python从url中提取图像名称
- php - Setting Paypal Checkout Price
- c# - 如何对 JsonProperty 名称进行单元测试
- vega-lite - Vega lite 计算问题
- python - 获取:UnicodeEncodeError:“charmap”编解码器无法对位置 0-1 中的字符进行编码:字符映射到
- javascript - 将 Javascript 对象解析为类似 JSON 的字符串,但使用单引号
- git - Gitlab CI:在同一作业中上传工件后如何运行 curl 脚本?
- python - 重新索引数据帧反向多索引级别
- javascript - 试图在我的数据库中以嵌入的形式列出电影