Share via


MOUSEINPUT 結構 (winuser.h)

包含模擬滑鼠事件的相關資訊。

語法

typedef struct tagMOUSEINPUT {
  LONG      dx;
  LONG      dy;
  DWORD     mouseData;
  DWORD     dwFlags;
  DWORD     time;
  ULONG_PTR dwExtraInfo;
} MOUSEINPUT, *PMOUSEINPUT, *LPMOUSEINPUT;

成員

dx

類型: LONG

根據 dwFlags 成員的值而定,滑鼠的絕對位置,或上次產生滑鼠事件之後的動作數量。 絕對資料會指定為滑鼠的 x 座標;相對資料會指定為移動的圖元數目。

dy

類型: LONG

根據 dwFlags 成員的值而定,滑鼠的絕對位置,或上次產生滑鼠事件之後的動作數量。 絕對資料會指定為滑鼠的 Y 座標;相對資料會指定為移動的圖元數目。

mouseData

類型: DWORD

如果 dwFlags 包含 MOUSEEVENTF_WHEEL則 mouseData 會指定滾輪移動的數量。 正值表示滾輪向前旋轉,離開使用者;負值表示滾輪向後旋轉,向使用者旋轉。 一個滾輪按一下定義為 WHEEL_DELTA,也就是 120。

Windows Vista:如果 dwFlags 包含 MOUSEEVENTF_HWHEELdwData 會指定滾輪移動的數量。 正值表示滾輪向右旋轉;負值表示滾輪已旋轉至左側。 一個滾輪按一下定義為 WHEEL_DELTA,也就是 120。

如果 dwFlags 不包含 MOUSEEVENTF_WHEELMOUSEEVENTF_XDOWNMOUSEEVENTF_XUP則 mouseData 應該是零。

如果 dwFlags 包含 MOUSEEVENTF_XDOWNMOUSEEVENTF_XUP則 mouseData 會指定按下或放開的 X 按鈕。 此值可以是下列旗標的任何組合。

意義
XBUTTON1
0x0001
如果按下或放開第一個 X 按鈕,請設定 。
XBUTTON2
0x0002
如果按下或放開第二個 X 按鈕,請設定 。

dwFlags

類型: DWORD

一組位旗標,指定滑鼠動作和按鈕點選的各種層面。 這個成員中的位可以是下列值的任何合理組合。

指定滑鼠按鍵狀態的位旗標會設定為指出狀態變更,而不是進行中的條件。 例如,如果按下並按住滑鼠左鍵,則會在第一次按下左按鈕時設定 MOUSEEVENTF_LEFTDOWN ,但不會設定後續動作。 同樣地 ,只有在第一 次放開按鈕時,才會設定MOUSEEVENTF_LEFTUP。

您無法同時在dwFlags參數中指定MOUSEEVENTF_WHEEL旗標和MOUSEEVENTF_XDOWNMOUSEEVENTF_XUP旗標,因為它們都需要使用mouseData欄位。

意義
MOUSEEVENTF_MOVE
0x0001
發生移動。
MOUSEEVENTF_LEFTDOWN
0x0002
按下左按鈕。
MOUSEEVENTF_LEFTUP
0x0004
左按鈕已釋放。
MOUSEEVENTF_RIGHTDOWN
0x0008
按下右鍵。
MOUSEEVENTF_RIGHTUP
0x0010
已放開右按鈕。
MOUSEEVENTF_MIDDLEDOWN
0x0020
按下中間按鈕。
MOUSEEVENTF_MIDDLEUP
0x0040
中間按鈕已釋放。
MOUSEEVENTF_XDOWN
0x0080
按下 X 按鈕。
MOUSEEVENTF_XUP
0x0100
已釋放 X 按鈕。
MOUSEEVENTF_WHEEL
0x0800
如果滑鼠有滾輪,則會移動滾輪。 滑鼠資料中指定移動量。
MOUSEEVENTF_HWHEEL
0x1000
如果滑鼠有滾輪,則會水準移動滾輪。 滑鼠資料中指定移動量。
Windows XP/2000:不支援此值。
MOUSEEVENTF_MOVE_NOCOALESCE
0x2000
不會聯合 WM_MOUSEMOVE 訊息。 預設行為是聯合 WM_MOUSEMOVE 訊息。
Windows XP/2000:不支援此值。
MOUSEEVENTF_VIRTUALDESK
0x4000
將座標組應至整個桌面。 必須與 MOUSEEVENTF_ABSOLUTE搭配使用。
MOUSEEVENTF_ABSOLUTE
0x8000
dxdy成員包含標準化絕對座標。 如果未設定旗標, dxdy 會包含相對資料, (自上次報告位置以來的位置變更) 。 不論何種滑鼠或其他指向裝置,都可以設定或無法設定此旗標,如果有的話,就會連線到系統。 如需有關相對滑鼠動作的詳細資訊,請參閱下列一節。

time

類型: DWORD

事件的時間戳記,以毫秒為單位。 如果此參數為 0,系統會提供自己的時間戳記。

dwExtraInfo

類型: ULONG_PTR

與滑鼠事件相關聯的額外值。 應用程式會呼叫 GetMessageExtraInfo 來取得這項額外資訊。

備註

如果滑鼠已移動, 則由MOUSEEVENTF_MOVE表示, dxdy 會指定該移動的相關資訊。 資訊會指定為絕對或相對整數值。

如果指定 了MOUSEEVENTF_ABSOLUTE 值, dxdy 會包含介於 0 到 65,535 之間的標準化絕對座標。 事件程序會將這些座標組應到顯示介面。 座標 (0,0) 對應到顯示介面的左上角;座標 (65535,65535) 對應到右下角。 在多監視系統中,座標會對應至主要監視器。

如果指定 MOUSEEVENTF_VIRTUALDESK ,座標會對應至整個虛擬桌面。

如果未指定 MOUSEEVENTF_ABSOLUTE 值, dxdy 會指定相對於上一個滑鼠事件的移動, (最後一個報告的位置) 。 正值表示滑鼠向右移動 (或向下) ;負值表示滑鼠向左移動 (或向上移動) 。

相對滑鼠動作受限於滑鼠速度與雙滑鼠閾值的效果。 使用者會使用主控台滑鼠屬性工作表的[指標速度]滑杆來設定這三個值。 您可以使用 SystemParametersInfo 函式來取得和設定這些值。

系統會將兩項測試套用至指定的相對滑鼠移動。 如果沿著 x 或 y 軸的指定距離大於第一個滑鼠閾值,而且滑鼠速度不是零,則系統會將距離加倍。 如果沿著 x 或 y 軸的指定距離大於第二個滑鼠閾值,且滑鼠速度等於 2,則系統會將套用第一個閾值測試所產生的距離加倍。 因此,系統可以將 x 或 y 軸上的指定相對滑鼠移動乘以最多四倍。

規格需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
標頭 winuser.h (包含 Windows.h)

另請參閱

概念

GetMessageExtraInfo

INPUT

鍵盤輸入

參考

SendInput