网站大量收购闲置独家精品文档,联系QQ:2885784924

USB手柄的控制实用.pdfVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
/flyli_x/archive/2008/04/05/2252932.aspx USB 手柄或游戏控制杆并不一定只在打游戏的时候才用得到, 为了控制以 PC 机为核心的机 器人能够在手动的控制下运动,略微研究了下 USB 手柄的控制方法。 通过查阅相关资料, 查到了 2 中 USB 手柄的控制方法, 一种是基于 windows DDK 的 USB 开发,由于没有搞到 DDK 所以暂且不谈这种方法 我们来说说第二种方法,就是以基于 DirectX8.1 以上的 USB 手柄控制方法,使用这种方法 需要下载 Direct 的 SDK ,运用到他的运行库。 Dinput8.lib,DxErr.Lib,dxguid.lib 另外还需要加 载 direct 的一些头文件,至于头文件具体用到了那些我也没有测试, 我把这些可能用到的程 序都发到了我的资源中,地址是: /source/402394 其中将所有的 .h 文件复制到 vc 的运行库下,把 .lib 文件加载到工程中就可以使用了。 其使用方法也是相当的简单: 1. 将 CDirectInput 实例化 2. 调用 InitDirectInput 初始化 USB 手柄,通过其返回值判断手柄是否被识别 3. 声明一个 DIJOYSTA TE2 类型的值用于接收按键的状态 4. 用 GetState_Now() 声明的 DIJOYSTATE2 的值进行赋值 ; 5. DIJOYSTATE2 中部分键值的对应关系 lx ,ly 分别是对应上下左右的方向, rgbbutton[] 的数组是分别用来对应其他的手柄按键。 遇到具体的问题可以再联系我哈 一下是我封装后的类 //******************************************************************** // DirectInput.h 文件 //***************************************************************************** *** #pragma once #define DIRECTINPUT_VERSION 0x0800 #define _CRT_SECURE_NO_DEPRECA TE #ifndef _WIN32_DCOM #define _WIN32_DCOM #endif #include windows.h #include commctrl.h #include basetsd.h #include dinput.h #include dinputd.h #include assert.h #include oleauto.h #include shellapi.h #include wbemidl.h #pragma warning( disable : 4996 ) // disable deprecated warning #include strsafe.h #pragma warning( default : 4996 ) #include resource.h //============================================================= //宏定义 #define SAFE_DELETE(p) { if(p) { delete (p); (p)=NULL; } } #define SAFE_RELEASE(p) { if(p) { (p)-Release(); (p)=NULL; } } struct XINPUT_DEVICE_NODE { DWORD dwVidPid; XINPUT_DEVICE_NODE* pNext; }; struct DI_ENUM_CONTEXT { DIJOYCONFIG* pPreferredJoyCfg; bool bP

文档评论(0)

hwx37729388 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档