Winapi 在紧密循环中调用GetKeyState,为什么';这不管用吗?

Winapi 在紧密循环中调用GetKeyState,为什么';这不管用吗?,winapi,Winapi,在Charles Petzold的《编程窗口》一书中,他提到了以下内容: “请注意GetKeyState。它不是实时键盘状态检查。而是反映当前正在处理的消息之前的键盘状态。” “不要在(GetKeyState(VK_F1)>=0);时执行”,保证挂起程序 这些我一点也不懂。请有人解释一下这两个事实好吗。每次您阅读排队的键盘消息时,例如通过调用GetMessage,操作系统都会更新与调用线程关联的专用键盘状态数据。调用GetKeyState时,专用键盘状态数据用于确定返回的键状态。因此,只要您不读

在Charles Petzold的《编程窗口》一书中,他提到了以下内容:

“请注意GetKeyState。它不是实时键盘状态检查。而是反映当前正在处理的消息之前的键盘状态。”

“不要在(GetKeyState(VK_F1)>=0);时执行
”,保证挂起程序


这些我一点也不懂。请有人解释一下这两个事实好吗。

每次您阅读排队的键盘消息时,例如通过调用
GetMessage
,操作系统都会更新与调用线程关联的专用键盘状态数据。调用
GetKeyState
时,专用键盘状态数据用于确定返回的键状态。因此,只要您不读取另一个排队的消息,
GetKeyState
将始终返回相同的值。

每次读取排队的键盘消息时,例如通过调用
GetMessage
,操作系统都会更新与调用线程关联的专用键盘状态数据。调用
GetKeyState
时,专用键盘状态数据用于确定返回的键状态。因此,只要不读取另一个排队消息,
GetKeyState
将始终返回相同的值