点击这里下载源代码
2011年8月4日 17:11:29
准备工作:1.在http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=6812 下载DirectX SDK,并安装(C:\Program Files\Microsoft DirectX SDK).
2.VS中VC++ Include目录加入,C:\Program Files\Microsoft DirectX SDK\Include,libs目录中加入,C:\Program Files\Microsoft DirectX SDK\Lib\x86.
3.程序中加入XInput.h头文件以及XInput.lib
#include <XInput.h>
#pragma comment(lib, "XInput.lib").
正常使用该程序手柄设定(仅在罗技手柄F710做过测试):DX键拨到X,MODE灯灭掉,VIBRATION打开(按下时震动时间较长即为打开),该程序只能对一个手柄进行操作,但修改后可对最多4个手柄进行操作.
1.按下Initialize Joystick按键,测试是否能够读取到手柄数据来测试是否有手柄连接,若有手柄连接,则开启读取手柄数据线程,并且enable震动手柄按键.
2.在读取手柄数据线程中,读取tigger以及thumbstick控制量数据并输出到对应控件中,若某一按键被按下,对应的button也会enable.
3.当按下vibrate button,手柄会高速震动,直到关闭程序或者stop vibration.
4.当关闭程序时,读取手柄控制bool型变量为false,使得读取手柄数据线程终止,等待读取手柄数据线程终止后程序退出.
// Joystick_Test1Dlg.h : 头文件
//
#pragma once
// #############################################################################
// #############################################################################
#include <XInput.h>
#include "afxwin.h"
#pragma comment(lib, "XInput.lib")
// #############################################################################
// #############################################################################
// CJoystick_Test1Dlg 对话框
class CJoystick_Test1Dlg : public CDialog
{
// 构造
public:
CJoystick_Test1Dlg(CWnd* pParent = NULL); // 标准构造函数
// 对话框数据
enum { IDD = IDD_JOYSTICK_TEST1_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP(