WEB开发网
开发学院软件开发VC MFC下DirectX DirectInput的实现 阅读

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

上一页  1 2 3 4 5 6 7  下一页

Tags:MFC DirectX DirectInput

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接