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_HWHEEL, dwData 會指定滾輪移動的數量。 正值表示滾輪向右旋轉;負值表示滾輪已旋轉至左側。 一個滾輪按一下定義為 WHEEL_DELTA,也就是 120。
如果 dwFlags 不包含 MOUSEEVENTF_WHEEL、 MOUSEEVENTF_XDOWN或 MOUSEEVENTF_XUP, 則 mouseData 應該是零。
如果 dwFlags 包含 MOUSEEVENTF_XDOWN 或 MOUSEEVENTF_XUP, 則 mouseData 會指定按下或放開的 X 按鈕。 此值可以是下列旗標的任何組合。
值 | 意義 |
---|---|
XBUTTON1 0x0001 |
如果按下或放開第一個 X 按鈕,請設定 。 |
XBUTTON2 0x0002 |
如果按下或放開第二個 X 按鈕,請設定 。 |
dwFlags
類型: DWORD
一組位旗標,指定滑鼠動作和按鈕點選的各種層面。 這個成員中的位可以是下列值的任何合理組合。
指定滑鼠按鍵狀態的位旗標會設定為指出狀態變更,而不是進行中的條件。 例如,如果按下並按住滑鼠左鍵,則會在第一次按下左按鈕時設定 MOUSEEVENTF_LEFTDOWN ,但不會設定後續動作。 同樣地 ,只有在第一 次放開按鈕時,才會設定MOUSEEVENTF_LEFTUP。
您無法同時在dwFlags參數中指定MOUSEEVENTF_WHEEL旗標和MOUSEEVENTF_XDOWN或MOUSEEVENTF_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 |
dx和dy成員包含標準化絕對座標。 如果未設定旗標, dx和 dy 會包含相對資料, (自上次報告位置以來的位置變更) 。 不論何種滑鼠或其他指向裝置,都可以設定或無法設定此旗標,如果有的話,就會連線到系統。 如需有關相對滑鼠動作的詳細資訊,請參閱下列一節。 |
time
類型: DWORD
事件的時間戳記,以毫秒為單位。 如果此參數為 0,系統會提供自己的時間戳記。
dwExtraInfo
類型: ULONG_PTR
與滑鼠事件相關聯的額外值。 應用程式會呼叫 GetMessageExtraInfo 來取得這項額外資訊。
備註
如果滑鼠已移動, 則由MOUSEEVENTF_MOVE表示, dx 和 dy 會指定該移動的相關資訊。 資訊會指定為絕對或相對整數值。
如果指定 了MOUSEEVENTF_ABSOLUTE 值, dx 和 dy 會包含介於 0 到 65,535 之間的標準化絕對座標。 事件程序會將這些座標組應到顯示介面。 座標 (0,0) 對應到顯示介面的左上角;座標 (65535,65535) 對應到右下角。 在多監視系統中,座標會對應至主要監視器。
如果指定 MOUSEEVENTF_VIRTUALDESK ,座標會對應至整個虛擬桌面。
如果未指定 MOUSEEVENTF_ABSOLUTE 值, dx和 dy 會指定相對於上一個滑鼠事件的移動, (最後一個報告的位置) 。 正值表示滑鼠向右移動 (或向下) ;負值表示滑鼠向左移動 (或向上移動) 。
相對滑鼠動作受限於滑鼠速度與雙滑鼠閾值的效果。 使用者會使用主控台滑鼠屬性工作表的[指標速度]滑杆來設定這三個值。 您可以使用 SystemParametersInfo 函式來取得和設定這些值。
系統會將兩項測試套用至指定的相對滑鼠移動。 如果沿著 x 或 y 軸的指定距離大於第一個滑鼠閾值,而且滑鼠速度不是零,則系統會將距離加倍。 如果沿著 x 或 y 軸的指定距離大於第二個滑鼠閾值,且滑鼠速度等於 2,則系統會將套用第一個閾值測試所產生的距離加倍。 因此,系統可以將 x 或 y 軸上的指定相對滑鼠移動乘以最多四倍。
規格需求
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
標頭 | winuser.h (包含 Windows.h) |
另請參閱
概念
參考