處理遊戲桿訊息
[與此頁面相關聯的功能 Joysticks是舊版功能。 Windows.Gaming.Input 命名空間已取代它。 Windows.Gaming.Input 命名空間 已針對 Windows 10 和 Windows 11 優化。 Microsoft強烈建議新程式代碼盡可能使用 Windows.Gaming.Input 命名空間,而不是 Joysticks。 Microsoft建議使用舊版 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;