Traitement des messages du joystick

L’exemple suivant illustre comment une application peut répondre aux mouvements du joystick et aux changements dans les états du bouton. Lorsque le joystick change de position, l’application déplace le curseur et, si l’un ou l’autre bouton est enfoncé, dessine un trou de balle sur le bureau. Quand un bouton du joystick est enfoncé, l’application dessine un trou sur le bureau et diffuse un son en continu jusqu’à ce qu’un bouton soit relâché. Les messages à watch sont MM_JOY1MOVE, MM_JOY1BUTTONDOWN et 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;