Condividi tramite


Elaborazione dei messaggi joystick

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