Partilhar via


Processamento de mensagens de Joystick

[O recurso associado a esta página, Joysticks, é um recurso legado. Ele foi substituído pelo Windows.Gaming.Input Namespace. O namespace Windows.Gaming.Input foi otimizado para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize o Espaço de Nomes Windows.Gaming.Input em vez de Joysticks, sempre que possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O exemplo a seguir ilustra como um aplicativo pode responder a movimentos de joystick e alterações nos estados dos botões. Quando o joystick muda de posição, o aplicativo move o cursor e, se um dos botões for pressionado, desenha um furo de bala na área de trabalho. Quando um botão de joystick é pressionado, o aplicativo desenha um orifício na área de trabalho e reproduz um som continuamente até que um botão seja liberado. As mensagens a serem observadas são MM_JOY1MOVE, MM_JOY1BUTTONDOWNe 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;