Condividi tramite


Elaborazione dei messaggi joystick

[La funzionalità associata a questa pagina, joystick, è una funzionalità legacy. È stato sostituito da spazio dei nomi Windows.Gaming.Input. Il namespace Windows.Gaming.Input è stato ottimizzato per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice utilizzi il namespace Windows.Gaming.Input anziché i joystick, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Nell'esempio seguente viene illustrato come un'applicazione potrebbe rispondere ai movimenti del joystick e alle modifiche negli stati del pulsante. Quando il joystick cambia posizione, l'applicazione sposta il cursore e, se si preme uno dei due pulsanti, disegna un foro puntato sul desktop. Quando si preme un pulsante del joystick, l'applicazione disegna un foro sul desktop e riproduce un suono continuamente fino a quando non viene rilasciato un pulsante. I messaggi da controllare sono MM_JOY1MOVE, MM_JOY1BUTTONDOWNe 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;