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;