www.pudn.com > Chesssource.rar > Input.h
#if !defined(_INPUT_H_)
#define _INPUT_H_
enum InputDevices
{
NONE = 0,
KEYBOARD,
MOUSE,
};
///////////////////////////////////////////////////////////////////////
// 鼠标定义
///////////////////////////////////////////////////////////////////////
#define BUTTON_RELEASED FALSE
#define BUTTON_PRESSED TRUE
#define BUTTON_UNLOCKED FALSE
#define BUTTON_LOCKED TRUE
#define MOUSE_LBUTTON 0
#define MOUSE_RBUTTON 1
#define MOUSE_MBUTTON 2
///////////////////////////////////////////////////////////////////////
// 类定义
///////////////////////////////////////////////////////////////////////
class cInput;
class cInputDevice;
class cInput
{
protected:
HWND m_hWnd;
IDirectInput8 *m_pDI;
public:
cInput();
~cInput();
IDirectInput8 *GetDirectInputCOM();
HWND GethWnd();
BOOL Init(HWND hWnd, HINSTANCE hInst);
BOOL Shutdown();
};
class cInputDevice
{
public:
cInput *m_Input;
short m_Type;
IDirectInputDevice8 *m_pDIDevice;
BOOL m_Windowed;
char m_State[256];
DIMOUSESTATE *m_MouseState;
BOOL m_Locks[256];
long m_XPos, m_YPos;
public:
cInputDevice();
~cInputDevice();
IDirectInputDevice8 *DeviceCOM();
BOOL Create(cInput *Input, short Type, BOOL Windowed = TRUE);
BOOL Free();
BOOL Clear();
BOOL Read();
BOOL Acquire(BOOL Active = TRUE);
BOOL GetLock(char Num);
BOOL SetLock(char Num, BOOL State = TRUE);
long GetXPos();
BOOL SetXPos(long XPos);
long GetYPos();
BOOL SetYPos(long YPos);
long GetXDelta();
long GetYDelta();
// 键盘专用函数
BOOL GetKeyState(char Num);
BOOL SetKeyState(char Num, BOOL State);
BOOL GetPureKeyState(char Num);
short GetKeypress(long TimeOut = 0);
long GetNumKeyPresses();
long GetNumPureKeyPresses();
// 鼠标专用函数
BOOL GetButtonState(char Num);
BOOL SetButtonState(char Num, BOOL State);
BOOL GetPureButtonState(char Num);
long GetNumButtonPresses();
long GetNumPureButtonPresses();
};
#endif