|
|
我做DInput时遇到困难了,初始化没出错,但不知漏了些什么了,这些是全部的DInput代码:
LPDIRECTINPUT8 pInput = NULL;
LPDIRECTINPUTDEVICE8 pInputDev = NULL;
...............
void InitInput()//初始化
{
HRESULT hr;
hr=DirectInput8Create(GetModuleHandle(NULL),
DIRECTINPUT_VERSION,
IID_IDirectInput8,
(void**)&pInput,
NULL);
hr=pInput->CreateDevice(GUID_SysMouse, &pInputDev, NULL);
hr=pInputDev->SetDataFormat(&c_dfDIMouse);
hr=pInputDev->SetCooperativeLevel(hWnd,DISCL_EXCLUSIVE | DISCL_FOREGROUND);
DIPROPDWORD dipdw;
dipdw.diph.dwSize = sizeof(DIPROPDWORD);
dipdw.diph.dwHeaderSize = sizeof(DIPROPHEADER);
dipdw.diph.dwObj = 0;
dipdw.diph.dwHow = DIPH_DEVICE;
dipdw.dwData = 500;
pInputDev->SetProperty( DIPROP_BUFFERSIZE, &dipdw.diph ) ;
pInputDev->Acquire();
}
void ReadMouse()//检测鼠标
{
DIMOUSESTATE mouse_stat;
ZeroMemory(&mouse_stat,sizeof(mouse_stat));
HRESULT hr;
hr=pInputDev->GetDeviceState( sizeof(DIMOUSESTATE), &mouse_stat );
mousex+=mouse_stat.lX;
mousey+=mouse_stat.lY;
}
[em24] |
|