从 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 获取像素数据?