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中。
开启线程在子线程中定时读取遥感数据;然后通过信号槽实现具体按钮功能。
 
 
 
 





猜你喜欢

转载自blog.csdn.net/u012232736/article/details/79267534