Freigeben über


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;