📄 directinput.h
字号:
//
// DirectInput class
//
#ifndef __DIRECTINPUT_INCLUDED__
#define __DIRECTINPUT_INCLUDED__
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <mmsystem.h>
#define DIRECTINPUT_VERSION 0x0700
#include <dinput.h>
#include "typedef.h"
#include "macro.h"
#include <string>
using namespace std;
class CDirectInput
{
public:
// 僷僽儕僢僋儊儞僶曄悢
typedef struct tagDIKEYTBL {
WORD key;
LPCSTR name;
} DIKEYTBL, *LPDIKEYTBL;
static DIKEYTBL DIKeyTable[];
INT m_nJoystickNum;
enum { DIJOYSTICK_MAX = 16 };
enum {
DI_XAXIS = 0, DI_YAXIS = 2, DI_ZAXIS = 4,
DI_RXAXIS = 6, DI_RYAXIS = 8, DI_RZAXIS = 10,
DI_MAXAXIS = 12,
DI_BUTTON = 16
};
BYTE m_Sw[256+64*DIJOYSTICK_MAX];
LONG m_JoyAxis[DIJOYSTICK_MAX][8];
string m_JoyName[DIJOYSTICK_MAX];
static LPSTR DIKeyDirTable[];
// 僷僽儕僢僋儊儞僶娭悢
CDirectInput();
virtual ~CDirectInput();
BOOL InitialDInput( HWND hWnd, HINSTANCE hInst );
void ReleaseDInput( void );
void Acquire();
void Unacquire();
void Poll();
BOOL AddJoystickDevice( GUID deviceguid );
void SetJoyAxisMode( LPWORD pMode ) {
for( INT i = 0; i < DIJOYSTICK_MAX; i++ )
m_JoyAxisMode[i] = pMode[i];
};
LPCSTR SearchKeyName( INT key );
protected:
// 僾儘僥僋僩儊儞僶曄悢
LPDIRECTINPUT7 m_lpDI;
LPDIRECTINPUTDEVICE m_lpKeyboard;
LPDIRECTINPUTDEVICE7 m_lpJoystick[DIJOYSTICK_MAX];
WORD m_JoyAxisMode[DIJOYSTICK_MAX];
// 僾儘僥僋僩儊儞僶娭悢
static BOOL CALLBACK DIEnumDevicesCallback( LPDIDEVICEINSTANCE lpddi, LPVOID pvRef );
};
extern CDirectInput DirectInput;
#endif // !__DIRECTINPUT_INCLUDED__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -