为什么我按下方向箭头ON后,函数GetKeyState仍然给我一个大于0的值?
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
for(int i = 0; i < 1000; ++i)
{
if(GetKeyState(VK_UP))
{
cout << "UP pressed" << endl;
}
else
cout << "UP not pressed" << endl;
Sleep(150);
}
return 0;
}
来自文档 http://msdn.microsoft.com/en-gb/library/windows/desktop/ms646301.aspx:
当线程读取时,从此函数返回的键状态发生变化
来自其消息队列的关键消息。该状态并不反映
与硬件相关的中断级状态。使用
GetAsyncKeyState 函数来检索该信息。
由于您不处理消息,因此您需要调用GetAsyncKeyState
反而。
测试按下的键,如下所示:
if (GetAsyncKeyState(VK_UP) < 0)
// key is pressed
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)