从 Direct Input 和 GetDeviceState() (C++) 接收键状态

Posted

技术标签:

【中文标题】从 Direct Input 和 GetDeviceState() (C++) 接收键状态【英文标题】:Receiving key states from Direct Input and GetDeviceState() (C++) 【发布时间】:2012-04-12 15:51:22 【问题描述】:

我正在使用直接输入为键盘输入制作一个包装器。为了获取关键状态,函数GetDeviceState() 使用字符缓冲区调用。

这一切都很好,但是现在要发送键事件,我必须遍历缓冲区并检查所有被按下的键。我希望会有一个回调,而不是只传递按下的键码。

如果有人有直接输入的经验,遍历键码缓冲区是检查按键的唯一方法吗?

【问题讨论】:

【参考方案1】:

答案是改用GetDeviceData()。您将能够获得是否按下或释放键以及按下的键的偏移量,这与我正在寻找的非常接近,因为现在我可以启动自己的回调,并且如果没有按下任何键,则开销是最小。

【讨论】:

以上是关于从 Direct Input 和 GetDeviceState() (C++) 接收键状态的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Direct2D 从 BITMAPINFOHEADER 和 BYTE 渲染位图

如何从 VideoMediaFrame.Direct3DSurface 获取像素数据?

如何使用 Direct2D 从窗口中获取像素

从具有 O_DIRECT 的 HDD 读取()失败并显示 22(EINVAL,无效参数)

lxml - 从间接url转换为direct url

是否可以从非通用应用程序使用 Wi-Fi Direct?