Verarbeiten von Joysticknachrichten
Das folgende Beispiel veranschaulicht, wie eine Anwendung auf Joystickbewegungen und Änderungen in den Schaltflächenzuständen reagieren kann. Wenn der Joystick die Position ändert, bewegt die Anwendung den Cursor und zeichnet, wenn eine taste gedrückt wird, ein Aufzählungsloch auf dem Desktop. Wenn eine Joysticktaste gedrückt wird, zeichnet die Anwendung ein Loch auf dem Desktop und gibt kontinuierlich einen Sound ab, bis eine Taste losgelassen wird. Die nachrichten für watch sind MM_JOY1MOVE, MM_JOY1BUTTONDOWN und MM_JOY1BUTTONUP.
case MM_JOY1MOVE : // changed position
if((UINT) wParam & (JOY_BUTTON1 | JOY_BUTTON2))
DrawFire(hWnd);
DrawSight(lParam); // calculates new cursor position
break;
case MM_JOY1BUTTONDOWN : // button is down
if((UINT) wParam & JOY_BUTTON1)
{
PlaySound(lpButton1, SND_LOOP | SND_ASYNC | SND_MEMORY);
DrawFire(hWnd);
}
else if((UINT) wParam & JOY_BUTTON2)
{
PlaySound(lpButton2, SND_ASYNC | SND_MEMORY | SND_LOOP);
DrawFire(hWnd);
}
break;
case MM_JOY1BUTTONUP : // button is up
sndPlaySound(NULL, 0); // stops the sound
break;