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;