Qt+普通遥感手柄+Windows+Winmm

手柄为2遥感+多按钮

qt使用Windows自带的库Winmm

添加库和头文件

.pro中添加:

LIBS += -lWinmm

.h文件中添加:

#include "windows.h"     #include "w32api.h"     #include "winuser.h"    #include "mmsystem.h"

主要使用JOYINFO、和 JOYINFOEX这两个类;通过这两个类的对象绑定手柄,对手柄数据进行读取。

JOYINFO结构体

typedef struct joyinfo_tag {

    UINT wXpos;

    UINT wYpos;
    UINT wZpos;
    UINT wButtons;
  } JOYINFO,*PJOYINFO,NEAR *NPJOYINFO,*LPJOYINFO;

JOYINFOEX结构体

typedef struct joyinfoex_tag {
    DWORD dwSize;
    DWORD dwFlags;
    DWORD dwXpos;
    DWORD dwYpos;
    DWORD dwZpos;
    DWORD dwRpos;
    DWORD dwUpos;
    DWORD dwVpos;
    DWORD dwButtons;
    DWORD dwButtonNumber;
    DWORD dwPOV;
    DWORD dwReserved1;
    DWORD dwReserved2;
  } JOYINFOEX,*PJOYINFOEX,NEAR *NPJOYINFOEX,*LPJOYINFOEX;
在读取时先要对JOYINFOEX对象初始化,主要初始化dwsize 和dwFlags这两个属性
joyinfoex.dwSize = sizeof(JOYINFOEX);
joyinfoex.dwFlags = JOY_RETURNALL;
joyGetNumDevs()方法可以返回接入的joystick设备的数目,最多支持两个手柄
joyGetPosEx(UINT uJoyID,LPJOYINFOEX pji); 读取uJoyID手柄的输入数据,读取结果存放在pji中;pji为JOYINFOEX对象
按键的信息在dwbutton属性中读取,方向在dwXpos,dwYpos,dwZpos中。
开启线程在子线程中定时读取遥感数据;然后通过信号槽实现具体按钮功能。
 
 





  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值