Delen via


Joystickberichten verwerken

[De functie die is gekoppeld aan deze pagina, Joysticks, is een verouderde functie. Het is vervangen door Windows.Gaming.Input Namespace. Windows.Gaming.Input-naamruimte is geoptimaliseerd voor Windows 10 en Windows 11. Microsoft raadt ten zeerste aan om nieuwe code te gebruiken Windows.Gaming.Input Namespace in plaats van Joysticks, indien mogelijk. Microsoft stelt voor dat bestaande code die gebruikmaakt van de verouderde API's, indien mogelijk opnieuw worden geschreven om de nieuwe API's te gebruiken.]

In het volgende voorbeeld ziet u hoe een toepassing kan reageren op stickbewegingen en wijzigingen in de knopstatussen. Wanneer de joystick de positie wijzigt, verplaatst de toepassing de cursor en tekent een kogelgat op het bureaublad als er op een van de knoppen wordt gedrukt. Wanneer een joystickknop wordt ingedrukt, tekent de toepassing een gat op het bureaublad en speelt een geluid continu af totdat een knop wordt losgelaten. De te bekijken berichten zijn MM_JOY1MOVE, MM_JOY1BUTTONDOWNen 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;