조이스틱 메시지 처리
[조이스틱 이 페이지와 연결된 기능은 레거시 기능입니다. Windows.Gaming.Input 네임스페이스가로 대체되었습니다. Windows.Gaming.Input 네임스페이스 Windows 10 및 Windows 11에 최적화되었습니다. 가능한 경우 새 코드에서 조이스틱 대신 Windows.Gaming.Input 네임스페이스 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
다음 예제에서는 애플리케이션이 단추 상태의 조이스틱 이동 및 변경에 응답하는 방법을 보여 줍니다. 조이스틱이 위치를 변경하면 응용 프로그램이 커서를 이동시키고, 아무 버튼이나 누르면 바탕 화면에 총알 구멍을 그립니다. 조이스틱 단추를 누르면 응용 프로그램이 바탕 화면에 구멍을 뚫고 단추가 놓일 때까지 지속적으로 소리를 재생합니다. 볼 메시지는 MM_JOY1MOVE, MM_JOY1BUTTONDOWN및 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;