通行证: 用户 密码
http://www.pconline.cn/
汽车网 | 游戏网 | 时尚女性
分站:北京 上海 广州 深圳 香港
广西 重庆 山东 江苏 辽宁 福建
首 页 | 今日报价 | 产业资讯 | 数码世界 | 硬件资讯 | 软件资讯 | 下 载 | 游 戏 |
论 坛 | 产 品 库 | 渠道商情 | 招聘培训 | 二    手 | 评 测 室 | 导 购 | 社 区 |
摄影
部落
手 机
数码相机
随身听
 DIY配件
笔记本
 台式机
摄像机
精品廊
-
您现在的位置: 软件资讯 > 开发特区 > 开发语言 > VC/MFC 免费新闻代码RSS新闻聚合
  MFC下DirectX DirectInput的实现 出处:vc社区
[ 2005-07-27 10:07:45 ] 作者:苗苗 责任编辑:moningfeng

  一般来说DirectX技术总是应用在游戏上的,而在DirectX天生就能与Win32很好的结合。看看市面上的图书,凡是用到DirectX技术的大多是使用Win32编程的,因为DirectDraw或者DirectXGraphics需要自己控制屏幕上的每一个象素,MFC等类库显然不适合太多自定义的东西。而另一方面,对于DirectInput里的内容,因为并不需要控制窗体,仅仅需要发送控制消息,则可以实现在MFC下的DirectInput编程。

  下面简要说明一下一个DirectInput在MFC下的实现,其中也包括DirectInput的一些基础知识。

  1.简介

  DirectInput和其他DirectX组成部分一样,是通过硬件抽象层(HAL)和硬件仿真层(HEL)来实现,但是一般来说,所有的游戏控制器都有合适的驱动程序来支持,所以一般来说硬件仿真层的内容并不多,大多数的控制是通过DirectX调用驱动程序来完成的。

  DirectInput处理的输入设备一般包括鼠标、键盘、游戏控制杆、操作杆等。而且现在的DirectInput还能够支持力反馈设备。本文仅仅讲述如何实现一个普通的PS游戏控制手柄在MFC中的应用,因为所有的输入设备的实现一般都大同小异,具体的力反馈设备,可以在SDK中查询。

  2.组件

  DirectInput8.0版中包括很多COM接口,而最主要的接口有两个:

  IDirectInput8:启动DirectInput所必须创建的主COM接口。创建了这个接口,才可以创建其他的接口,设置DirectInput属性,创建或者获得想要的输入设备。

  IDirectInputDevice8:由IDirectInput8接口创建而的,表示具体的输入设备。

  3.实现

  创建一个基于对话框的MFC应用程序。项目名称为DirectInputJS(JS表示joystick)其他使用默认设置。删除对话框中间的标签,按钮可以先不管,因为这不是本文的重点。

  现在在解决方案中添加一个一般 C++类,来封装DirectInput 中的Joystick。类名填选Joystick,没有基类,虚析构函数,完成。

  首先,在Joystick.h的头文件里补充一些声明:

  #pragma once

  #define DIRECTINPUT_VERSION 0x0800

  #include <dinput.h>


  注意声明版本在声明dinput.h头文件之前,因为如果先声明dinput.h,则这里的版本定义将因为dinput.h中已经声明而产生错误。这里需要说明的是SDK版本为DirectX9.0,而DirectInput版本为8.0。

  需要说明的是,这里的版本定义并不是必须的,只是编译器会产生一个没什么影响的警告。在dinput.h里有这么一段代码:

  #define DIRECTINPUT_HEADER_VERSION 0x0800

  #ifndef DIRECTINPUT_VERSION

  #define DIRECTINPUT_VERSION DIRECTINPUT_HEADER_VERSION

  #pragma message(__FILE__ ": DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800")

  #endif


Flash剧场全新改版,精品Flash让你看够玩够!


[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [下一页]

更多相关搜索: MFC.. DirectX.. DirectInput..
正在加载评论,请稍候…

发给好友 我要报错 投稿给我们 加入收藏 返回顶部

本栏今日更新
相关文章
·FireTune新版:Firfox优化轻松搞定
·音效增强!DFX 7.500 for WMP发布
·微软恶意软件移除工具可杀Zotob
·Google或MSN地图?Flash Earth整合
·强力清除软件使用后的蛛丝马迹
·六大闪光点:QQ2005 beta 3泄漏版试用
·超酷!Mac系统播客工具提供Win版
·PConline联合超级兔子狂送注册码!
·VC精华教程:MFC入门系列(二)
·DirectX游戏开发入门
·经典与现代的结合:在MFC中集成RAD .NET框架
·VC精华教程:MFC入门系列(一)
·创建DirectX环境
·十年MFC经历认识的Microsoft技术
·为MFC应用程序添全屏幕显示功能
·宝刀未老,新版DirectX 9.0 SDK发布

完美时尚娱乐:2004年腾讯QQ评测大观
精彩无限:MSN Shell4使用指南
亲手制作鲜花情人贺卡送给她
挑战伏明霞?企鹅跳水游戏,看你能得多少分?

新闻搜索
高级搜索
Flash排行榜
·快来看看!芙蓉姐姐进军歌坛
·动感漂移-头文字D赛车
·头文字D插曲-一路向北
·暴笑恶搞MV-《从良》
·笑谈广东话-叽叽噶噶
·恶搞!PP鸡打劫记之一
·下辈子如果我还记得你
·疯狂射击游戏-火凤凰号
·悲怆!披着羊皮的狼
·搞笑MV-亲爱的对不起
热点专题
·挑战十大Flash智益游戏
·QQ辅助软件使用指南
·向"流氓软件"大声说不!
·惜别!毕业十大必唱歌曲
·常用软件的另类用法集
·搜索技巧:网罗天下的乐趣
·电脑艺术设计大师之路连载
·老歌歪唱Flash MV爆笑欣赏
·超级兔子狂送注册码!
·引领时尚:K8翻唱上传技巧
·Photoshop立体光影魔术!
·Photoshop绘水果饕餮大餐
IT培训十大热门文章
-