c++ - GetKeyState() 与 GetAsyncKeyState() 与 getch()?

标签 c++ input keyboard getchar

与获得按键有什么区别:

  • 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/

相关文章:

.net - 使用VB.Net捕获所有键盘事件

python - 如何将输入读取为数字?

javascript - 以html形式一次删除两个动态字段

c++ - 鸟瞰opencv c++的透视变换

c++ - 使用 thrift 和 cassandra 编译 C++ 程序

c - 将文件中的内容添加到链表

keyboard - 我在哪里可以获得一套完整的键盘按键图标?

ios - 当 UIAlertView 在屏幕上时,无法在 UIViewController 堆栈中隐藏键盘

c++ - 从 std::vector 查找 std::map 中的对象

c++ - 如何将二进制数据复制到字符串流