作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有程序,然后它正在运行,它会询问内容,然后用户必须按 1 才能继续我使用 GetKeyState() 函数来确定是否按下了数字,并使用 SetKeyboardState() 将按键状态设置回原始状态,但它没有第二次尝试后无法正常工作。怎么了?
代码:
BYTE States[256];
GetKeyboardState(States);
cout << press 1 << endl;
while(!Started)
{
if(GetKeyState(VK_NUMPAD1))
{
Started = true;
}
}
SetKeyboardState(States);
cout << "press 1" << endl;
while(!Name)
{
if(GetKeyState(VK_NUMPAD1))
{
Name = true;
}
}
SetKeyboardState(States);
cout << "press 1" << endl;
while(!Located)
{
if(GetKeyState(VK_NUMPAD1))
{
Located = true;
}
}
最佳答案
我觉得这段代码有点奇怪。我觉得您没有找到解决问题的最佳方法。但我对你的问题了解不够,无法肯定地说。
不过有一件事很突出。您对 GetKeyState()
返回值的测试是错误的,您应该这样测试它:
if(GetKeyState(VK_NUMPAD1)<0)
来自文档:
If the high-order bit is 1, the key is down; otherwise, it is up.
测试高位是否为1的简单方法是值为负。您的代码会测试任何被设置的位,这将对除按键按下之外的状态评估为真。
关于c++ - SetKeyboardState 不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21684397/
我有程序,然后它正在运行,它会询问内容,然后用户必须按 1 才能继续我使用 GetKeyState() 函数来确定是否按下了数字,并使用 SetKeyboardState() 将按键状态设置回原始状态
我是一名优秀的程序员,十分优秀!