use*_*107 3 c++ keyboard winapi keypress
为什么在我按下方向箭头 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;
}
Run Code Online (Sandbox Code Playgroud)
从文档:
当线程从其消息队列中读取关键消息时,从该函数返回的关键状态会发生变化。该状态不反映与硬件关联的中断级状态。使用 GetAsyncKeyState 函数来检索该信息。
由于您不是在处理消息,因此您需要调用GetAsyncKeyState。
测试按下的键,如下所示:
if (GetAsyncKeyState(VK_UP) < 0)
// key is pressed
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10083 次 |
| 最近记录: |