joyGetPos/joyGetPosEx 輪詢狀態。joySetCapture 向系統申請捕捉,系統定時發送訊息通知。本篇講解被動模式。
[DllImport("winmm.dll")]
public static extern int joySetCapture(IntPtr hWnd, int uJoyID, int uPeriod, bool fChanged);
hWnd:視窗控制代碼uJoyID:手柄 ID (0-15),如 JOYSTICKID1/JOYSTICKID2uPeriod:輪詢間隔 (毫秒)fChanged:是否僅在移動一定距離後才通知成功回傳 JOYERR_NOERROR (0),失敗回傳其他值。不需時呼叫 joyReleaseCapture 釋放。
| JOYSTICKID1 | 說明 |
|---|---|
| MM_JOY1MOVE | 位置變動或按鈕按下 |
| MM_JOY1BUTTONDOWN | A/B/C/D 鍵按下 |
| MM_JOY1BUTTONUP | A/B/C/D 鍵彈起 |
JOYSTICKID2 對應 MM_JOY2MOVE、MM_JOY2BUTTONDOWN、MM_JOY2BUTTONUP。
注意:無論是否按鈕,系統皆定時發送 MM_JOYxMOVE。
JOY_BUTTON1 | JOY_BUTTON2)。不同訊息類型的按鍵值定義不同,需留意區分。