|
GetDeviceState如何得知某一??按?被?放
???查MSDN的哪一??地方
我?得0x80是按下,那?"按下後放?"呢?
void WINAPI ProcessKBInput()
{
#define KEYDOWN(name, key) (name[key] & 0x80)
char buffer[256];
HRESULT hr;
hr = g_lpDIDevice->GetDeviceState(sizeof(buffer),(LPVOID)&buffer);
if FAILED(hr)
{
// If it failed, the device has probably been lost.
// Check for (hr == DIERR_INPUTLOST)
// and attempt to reacquire it here.
return;
}
// Turn the spaceship right or left
if (KEYDOWN(buffer, DIK_RIGHT));
// Turn right.
else if(KEYDOWN(buffer, DIK_LEFT));
// Turn left.
// Thrust or stop the spaceship
if (KEYDOWN(buffer, DIK_UP)) ;
// Move the spaceship forward.
else if (KEYDOWN(buffer, DIK_DOWN));
// Stop the spaceship.
} |
|