Compartir a través de


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;