Verarbeiten von Nachrichten
Im folgenden Beispiel wird veranschaulicht, wie eine Anwendung auf Bewegungen und Änderungen der Schaltflächenzustände reagieren kann. Wenn sich die Position des Servers ändert, verschiebt die Anwendung den Cursor und zeichnet, wenn eine der Schaltflächen gedrückt wird, eine Aufzählungsfläche auf dem Desktop. Wenn eine Druckschaltfläche gedrückt wird, zeichnet die Anwendung eine Lücke auf dem Desktop und gibt kontinuierlich einen Sound wieder, bis eine Schaltfläche losgelassen wird. Die zu beobachtende Meldung sind _ MMOVE1MOVE, _ MMOVE1BUTTONDOWNund _ MMOVE1BUTTONUP.
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;