与获得按键有什么区别:
GetKeyState()
GetAsyncKeyState()
getch()
?
我应该什么时候使用一个而不是另一个?
最佳答案
GetKeyState() 和 GetAsyncKeyState() 是 Windows 特定的 API,而 getch() 适用于其他非 Windows 特定的 C 编译器。
GetKeyState() 获取返回的键状态从线程的消息队列。该状态不反射(reflect)与硬件相关的中断级状态。
GetAsyncKeyState() 指定自上次调用 GetAsyncKeyState() 后是否按下按键,以及 当前按键是向上还是向下。如果设置了最高有效位,则按键按下,如果设置了最低有效位,则在上一次调用 GetAsyncKeyState() 之后按键被按下。
我在实践中看到的是,如果您按住某个键并在按下该键时分配一个行为,如果您使用 GetKeyState(),则该行为将被调用的次数比使用 GetAsyncKeyState 的次数多()。
在游戏中,我更喜欢使用 GetAsyncKeyState()。
(您也可以在 MSDN 博客上查看更多详细信息)。
关于c++ - GetKeyState() 与 GetAsyncKeyState() 与 getch()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17770753/