如何在视觉c ++项目中添加箭头键作为修饰键Microsoft

How to add arrow key as modifier key in Microsoft visual c++ project

本文关键字:Microsoft 添加 视觉 项目      更新时间:2023-10-16

我需要根据按键事件移动一个对象.我能够一次检测一个键,但发现很难同时检测两个键,而 ctrl、alt 等修饰键可以同时检测,并且只有修饰键才有可能。我只需要一些帮助来同时检测两个箭头键,以及这些键值存储在视觉工作室中的位置。

加速器系统无法做到这一点(只能检测单个"正常"键以及某些修饰符(。

您可以使用 GetKeyboardState 一次获取所有虚拟键的表,然后进行测试,或者您可以跟踪哪些键已按下以及释放了哪些键(通过处理 WM_KEYDOWN/WM_KEYUP 和 WM_SYSKEYDOWN/WM_SYSKEYUP 消息(。您还可以调用 GetAsyncKeyState,它返回单个虚拟键的当前状态(也是配对虚拟键的状态(。

我可能会通过使用键状态变量来做到这一点,当WM_KEYDOWN进来时,我会打开该标志,然后调用一个箭头处理函数来检查所有箭头标志变量的状态。WM_KEYUP只会关闭旗帜。