Hallo,
also wenn du innerhalb eines Spiels auf Eingaben des Benutzers reagieren willst, dann würde ich dir zu DirectInput raten.
http://msdn.microsoft.com/en-us/library/…3(v=VS.85).aspx
Das ganze müsste dann ungefähr so aussehen. (Achtung nicht getestet.)
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
|
LPDIRECTINPUT8 directInputObject;
HR(DirectInput8Create( hInstance, DIRECTINPUT_VERSION,IID_IDirectInput8, ( void** )&directInputObject, 0 ));LPDIRECTINPUTDEVICE8 keyboardDevice;
HR(directInputObject->CreateDevice( GUID_SysKeyboard,&keyboardDevice, 0 ));
while(true)
{
HRESULT hr = keyboardDevice->GetDeviceState(sizeof(buffer),(LPVOID)&buffer);
if( hr ){HR(keyboardDevice->Acquire( )); /*alls wir den Device verlieren sollten.*/}
if(KEYDOWN( buffer, DIK_RIGHT )){/* handle this*/}
}
|
Das ganze macht natürlich nur Sinn innerhalb einer Game Loop, weil du immer wieder prüfen musst ob der Benutzer eine Aktion ausgeführt hat.
Für eine normale GUI App würde ich diesen Ansatz nicht weiter verfolgen, denn dafür hat man so was wie Events erfunden.
Schöne Grüße
Fireball