WM_MOUSEHWHEEL訊息
當滑鼠的水準滾動滾輪傾斜或旋轉時,傳送至活動視窗。 DefWindowProc 函式會將訊息傳播至視窗的父系。 訊息不應有內部轉送,因為 DefWindowProc 會將它傳播至父鏈,直到找到處理訊息的窗口為止。
視窗會透過其 WindowProc 函式接收此訊息。
#define WM_MOUSEHWHEEL 0x020E
參數
-
wParam
-
高序字表示方向盤旋轉的距離,以WHEEL_DELTA的倍數或因素表示,其設定為120。 正值表示方向盤向右旋轉;負值表示方向盤向左旋轉。
低序字表示各種虛擬密鑰是否已關閉。 此參數可以是下列其中一或多個值。
值 意義 - MK_CONTROL
- 0x0008
CTRL 鍵已關閉。 - MK_LBUTTON
- 0x0001
滑鼠左鍵已關閉。 - MK_MBUTTON
- 0x0010
滑鼠中間按鈕已關閉。 - MK_RBUTTON
- 0x0002
滑鼠右鍵已關閉。 - MK_SHIFT
- 0x0004
SHIFT 鍵已關閉。 - MK_XBUTTON1
- 0x0020
第一個 X 按鈕已關閉。 - MK_XBUTTON2
- 0x0040
第二個 X 按鈕已關閉。 -
lParam
-
低序字會指定指標的 X 座標,相對於螢幕左上角。
高序字會指定指標的 Y 座標,相對於螢幕左上角。
傳回值
如果應用程式處理此訊息,它應該會傳回零。
備註
使用下列程式代碼來取得 wParam 參數中的資訊。
fwKeys = GET_KEYSTATE_WPARAM(wParam);
zDelta = GET_WHEEL_DELTA_WPARAM(wParam);
使用下列程式代碼來取得水平和垂直位置。
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
如上所述,x 座標在傳回值的低序 短 ;y 座標位於高階 短 (兩者都代表 帶正 負號的值,因為它們可以在具有多個監視器的系統上接受負值)。 如果傳回值指派給變數,您可以使用MAKEPOINTS宏從傳回值取得POINTS結構。 您也可以使用 GET_X_LPARAM 或 GET_Y_LPARAM 宏來擷取 x 或 y 座標。
重要
請勿使用 LOWORD 或 HIWORD 宏來擷取游標位置的 x 和 y 座標,因為這些宏會在具有多個監視器的系統上傳回不正確的結果。 具有多個監視器的系統可以有負 x 和 Y 座標,而 LOWORD 和 HIWORD 會將座標視為未帶正負號的數量。
滾輪旋轉是WHEEL_DELTA的倍數,設定為120。 這是要採取的動作閾值,而且每個差異應該發生一個此類動作(例如卷動一個遞增)。
差異設定為 120,可讓 Microsoft 或其他廠商建置更精細的解析度方向盤(例如,無針腳輪自由旋轉輪),以在每個輪替傳送更多訊息,但每個訊息中都有較小的值。 若要使用這項功能,您可以新增傳入的差異值,直到 達到WHEEL_DELTA 為止(因此對於差異輪替,您會得到相同的回應),或捲動部分行以回應更頻繁的訊息。 您也可以選擇捲動粒度,並累積差異,直到到達為止。
需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2008 [僅限傳統型應用程式] |
頁首 |
|