📄 input.cpp
字号:
/////////////////////////////////////////////////////////////////////////////////////////////
// INPUT.CPP
/////////////////////////////////////////////////////////////////////////////////////////////
#include "input.h"
LPDIRECTINPUT lpDI;
LPDIRECTINPUTDEVICE lpDIDKeyboard;
LPDIRECTINPUTDEVICE lpDIDMouse;
LONG MouseX, MouseY;
BYTE Keys[256];
/////////////////////////////////////////////////////////////////////////////////////////////
// InitInput
/////////////////////////////////////////////////////////////////////////////////////////////
BOOL InitInput(HINSTANCE hInst, HWND hWnd)
{
HRESULT rval;
rval = DirectInputCreate(hInst, DIRECTINPUT_VERSION, &lpDI, NULL);
if(FAILED(rval)) return FALSE;
rval = lpDI->CreateDevice(GUID_SysMouse, &lpDIDMouse, NULL);
rval = lpDI->CreateDevice(GUID_SysKeyboard, &lpDIDKeyboard, NULL);
rval = lpDIDMouse->SetCooperativeLevel(hWnd, DISCL_EXCLUSIVE | DISCL_FOREGROUND);
rval = lpDIDKeyboard->SetCooperativeLevel(hWnd, DISCL_NONEXCLUSIVE | DISCL_FOREGROUND);
rval = lpDIDMouse->SetDataFormat(&c_dfDIMouse);
rval = lpDIDKeyboard->SetDataFormat(&c_dfDIKeyboard);
rval = lpDIDMouse->Acquire();
if(FAILED(rval)) return FALSE;
rval = lpDIDKeyboard->Acquire();
if(FAILED(rval)) return FALSE;
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////////////////////
// FiniInput
/////////////////////////////////////////////////////////////////////////////////////////////
void FiniInput()
{
if(lpDI)
{
if(lpDIDMouse)
{
lpDIDMouse->Release();
lpDIDMouse = NULL;
}
if(lpDIDKeyboard)
{
lpDIDKeyboard->Release();
lpDIDKeyboard = NULL;
}
lpDI->Release();
lpDI = NULL;
}
}
/////////////////////////////////////////////////////////////////////////////////////////////
// RestoreInput
/////////////////////////////////////////////////////////////////////////////////////////////
void RestoreInput()
{
lpDIDMouse->Acquire();
lpDIDKeyboard->Acquire();
}
/////////////////////////////////////////////////////////////////////////////////////////////
// UpdateInput
/////////////////////////////////////////////////////////////////////////////////////////////
void UpdateInput()
{
DIMOUSESTATE MouseState;
if(lpDIDKeyboard->GetDeviceState(256, &Keys) == DIERR_INPUTLOST | DIERR_NOTACQUIRED)
{
RestoreInput();
}
if(lpDIDMouse->GetDeviceState(sizeof(MouseState), &MouseState) == DIERR_INPUTLOST | DIERR_NOTACQUIRED)
{
RestoreInput();
}
MouseX = MouseState.lX;
MouseY = MouseState.lY;
}
/////////////////////////////////////////////////////////////////////////////////////////////
// KbHit
/////////////////////////////////////////////////////////////////////////////////////////////
BOOL KbHit()
{
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -