Procesamiento de mensajes de joystick
En el ejemplo siguiente se muestra cómo una aplicación podría responder a los movimientos del joystick y los cambios en los estados del botón. Cuando el joystick cambia de posición, la aplicación mueve el cursor y, si se presiona cualquiera de los botones, dibuja un agujero de viñeta en el escritorio. Cuando se presiona un botón de joystick, la aplicación dibuja un agujero en el escritorio y reproduce un sonido continuamente hasta que se suelta un botón. Los mensajes para watch son MM_JOY1MOVE, MM_JOY1BUTTONDOWN y 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;