MFC下DirectX DirectInput的实现
2007-03-22 21:31:38 来源:WEB开发网核心提示: 现在在解决方案中添加一个一般 C++类,来封装DirectInput 中的Joystick,MFC下DirectX DirectInput的实现(2),类名填选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
所以如果你不声明版本的话,会给出你一个warning警告,不过也没什么关系,因为你确定使用的8.0的版本而不是其他版本,除非你需要使用其他版本,那么你才需要注意这点。
下面开始把我们的新的类逐渐补充完整。在public下,声明如下的成员变量:
//一般的成员变量
HINSTANCE m_hInstance; // 实例句柄
HWND m_hWnd; // 窗口句柄
LPDIRECTINPUT8 m_lpDI; // DI8接口指针
LPDIRECTINPUTDEVICE8 m_lpDIDevice; // DIDevice8接口指针
DIJOYSTATE m_diJs; //存储Joystick状态信息
GUID JoystickGUID; //GUID
Tags:MFC DirectX DirectInput
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接