下面要说明的是一个数据结构DIDEVICEINSTANCE,它的Unicode下5.0以上版本的定义如下: typedef struct DIDEVICEINSTANCEW { 这里最主要的就是guidInstance了,它是你创建设备所必须的。 接下来是VOID* pvRef,它是一个32位指针,你可以通过它把所进行的操作保存下来。上面的例子中,在枚举函数里传递了JoystickGUID的地址到回调函数中,然后在回调函数中把扫描到的设备的GUID保存下来。 *(GUID*) pvRef = lpddi->guidInstance; 这个语句首先把pvRef转换为(GUID*)类型,然后使用*来赋值。 对于回调函数如何执行下面的操作,有两种方式: #define DIENUM_STOP 0 //扫描后停止 以上是枚举函数和回调函数的一些基本内容,当然你可以加入更多自己的操作在回调函数里面。 上面的例子中,我们枚举一个设备以后,在回调函数中保存了设备的GUID,然后立刻停止继续枚举扫描,来简单的实现我们的功能,当然如果你有很多的设备的话,你可以依次扫描每一个设备,保存他们每一个的GUID。 枚举和回调完成以后,就可以创建设备了。 //创建DI8设备 创建设备是不是很简单,只要使用LPDIRECTINPUT8接口的CreateDevice成员函数就可以完成。参数也很简单,第一个为设备的GUID,就是枚举和回调中所保存的那个GUID,第二个为设备接口的地址,来保存设备的接口,第三个参数为系统保留,一般使用NULL。 接下来要进行一些设备的必要的设置,包括协作等级、数据格式以及游戏手柄特有的输入特性方面的设置。 //设置协作等级—— 前台模式 | 独占模式 |
正在阅读:MFC下DirectX DirectInput的实现MFC下DirectX DirectInput的实现
2005-07-27 10:07
出处:
责任编辑:moningfeng
键盘也能翻页,试试“← →”键