捕获操纵杆额外按钮
有人可以告诉我是否有办法捕获额外的操纵杆按钮?我的意思是按钮编号 5、6、7、8 等。
我使用这段代码来捕获按钮按下事件:
procedure MMJOY1BUTTONDOWN (var LocMessage: TMMJoyStick); message MM_JOy1BUTTONDOWN;
但问题是它只捕获 4 个标准按钮,而不是任何额外的按钮。
多谢
Could someone please tell me if there is a way to capture extra joystick buttons? I mean buttons number 5,6,7,8 and so on.
I use this code to capture button down event :
procedure MMJOY1BUTTONDOWN (var LocMessage: TMMJoyStick); message MM_JOy1BUTTONDOWN;
But the problem is that it just captures the 4 standard buttons, not any extra buttons.
Thanks a lot
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
多媒体操纵杆 API 不支持为 5+ 按钮生成窗口消息,您必须使用
joyGetPosEx()
手动轮询其状态。否则,您应该使用 DirectX API 中的 DirectInput 来代替,因为它会替换较旧的 API。更新:或者,您可以使用原始输入 API 直接从操纵杆硬件接收事件通知。有关更多详细信息,请参阅 CodeProject:
使用用于处理操纵杆输入的原始输入 API
The Multimedia Joystick API does not support generating window messages for buttons 5+, you have to poll their status manually using
joyGetPosEx()
. Otherwise, you should use DirectInput from the DirectX API instead, as it replaces the older API.Update: Alternatively, you can use the Raw Input API to receive event notifications directly from the joystick hardware. See CodeProject for more details:
Using the Raw Input API to Process Joystick Input