如何区分左右键(CTRL和ALT)?
|
我开始利用Win32的原始输入功能来检测键盘上的所有键。到目前为止,一切正常!我可以区分第一行的数字和右侧小键盘的数字。我什至可以在左右移动键之间进行检测。但是,control和alt键不会返回唯一的扫描代码。控制键返回29,而alt键返回56。
检查这些键的键状态的常用方法是“ 0”。我已经使用
VK_LCONTROL
和VK_RCONTROL
测试了该功能,并且可以正常工作,但这仅有助于捕获按键事件。我也非常希望能够捕获关键事件。很明显,API可以某种方式知道正在按下哪个键。我如何获得这些信息?
我目前正在从“ 3”结构的“ 4”字段中提取扫描代码。这为我提供了有关除CTRL和ALT之外的每个键(及其左/右对齐)的信息。我将如何捕获关键事件(并知道它是左/右)?是否可以仅使用RAWKEYBOARD
结构?还是我必须炮制某种解决方法?
没有找到相关结果
已邀请:
2 个回复
亥套惟间连
函数或随虚拟键消息传递的lParam中的“扩展键”位。以下功能将为您执行该转换-只需从消息中传入虚拟键码和lParam,然后您将视情况取回左/右特定的虚拟键码:
如果传入的虚拟键码不是映射到左/右版本的虚拟键码,则原始键码会原样传递回去。因此,只要需要在左右变体之间进行区分时,就可以通过函数运行消息参数
/
/
/
。
容淑阔九