mouse_event函式 (winuser.h)
mouse_event函式會合成滑鼠動作和按鈕點選。
語法
void mouse_event(
[in] DWORD dwFlags,
[in] DWORD dx,
[in] DWORD dy,
[in] DWORD dwData,
[in] ULONG_PTR dwExtraInfo
);
參數
[in] dwFlags
類型: DWORD
控制滑鼠動作和按鈕按兩下的各種層面。 此參數可以是下列值的特定組合。
指定滑鼠按鈕狀態的值會設定為指出狀態變更,而不是進行中的條件。 例如,如果按下並按住滑鼠左鍵, 則第 一次按下左按鈕時會設定MOUSEEVENTF_LEFTDOWN,但不會設定後續動作。 同樣地,只有在第一次放開按鈕時, 才會設定MOUSEEVENTF_LEFTUP 。
您無法在 dwFlags 參數中同時指定MOUSEEVENTF_WHEEL和MOUSEEVENTF_XDOWN或MOUSEEVENTF_XUP,因為它們都需要使用 dwData 字段。
[in] dx
類型: DWORD
根據 MOUSEEVENTF_ABSOLUTE的設定,滑鼠沿著 x 軸的絕對位置或其自上一個滑鼠事件產生的動作數量而定。 絕對數據會指定為滑鼠的實際 X 座標;相對數據會指定為移動的麥克風數目。 麥克風是滑鼠必須移動以報告其移動的數量。
[in] dy
類型: DWORD
根據 MOUSEEVENTF_ABSOLUTE的設定,滑鼠沿著Y軸的絕對位置或其自最後一個滑鼠事件以來的動作數量。 絕對數據會指定為滑鼠的實際 Y 座標;相對數據會指定為移動的麥克風數目。
[in] dwData
類型: DWORD
如果 dwFlags 包含 MOUSEEVENTF_WHEEL, 則 dwData 會指定滾輪移動量。 正值表示滾輪向前旋轉,遠離使用者;負值表示滾輪向使用者向後旋轉。 一個滾輪按兩下會定義為 WHEEL_DELTA,也就是120。
如果 dwFlags 包含 MOUSEEVENTF_HWHEEL, 則 dwData 會指定滾輪移動量。 正值表示滾輪向右傾斜;負值表示滾輪向左傾斜。
如果 dwFlags 包含MOUSEEVENTF_XDOWN或MOUSEEVENTF_XUP,dwData 會指定按下或放開的 X 按鈕。 此值可以是下列旗標的任何組合。
如果 dwFlags 不是 MOUSEEVENTF_WHEEL、 MOUSEEVENTF_XDOWN或 MOUSEEVENTF_XUP, 則 dwData 應該是零。
值 | 意義 |
---|---|
|
如果按下或放開第一個 X 按鈕, 請設定 。 |
|
如果按下或放開第二個 X 按鈕, 請設定 。 |
[in] dwExtraInfo
類型: ULONG_PTR
與滑鼠事件相關聯的其他值。 應用程式會呼叫 GetMessageExtraInfo 來取得這項額外資訊。
傳回值
無
備註
如果滑鼠已移動 ,MOUSEEVENTF_MOVE被 設定, dx 和 dy 會保留該動作的相關信息。 此資訊會指定為絕對或相對整數值。
如果指定 了MOUSEEVENTF_ABSOLUTE 值, dx 和 dy 會包含介於 0 到 65,535 之間的標準化絕對座標。 事件過程會將這些座標對應到顯示介面。 坐標 (0,0) 對應到顯示介面的左上角, (65535,65535) 對應到右下角。
如果未指定 MOUSEEVENTF_ABSOLUTE 值, dx 和 dy 會指定產生上一個滑鼠事件 (最後一個報告位置時) 的相對動作。 正值表示滑鼠向右移動 (或向下) ;負值表示滑鼠向左移動 (或向上移動) 。
相對滑鼠動作受限於滑鼠速度和加速等級的設定。 終端使用者會在 控制台 中使用 Mouse 應用程式來設定這些值。 應用程式會使用 SystemParametersInfo 函式取得並設定這些值。
當套用加速時,系統會將兩項測試套用至指定的相對滑鼠動作。 如果沿著 x 或 y 軸的指定距離大於第一個滑鼠閾值,而且滑鼠加速層級不是零,則操作系統會將距離加倍。 如果沿著 x 軸或 Y 軸的指定距離大於第二個滑鼠閾值,且滑鼠加速等級等於兩個,則操作系統會將第一個閾值測試所產生的距離加倍。 因此,操作系統可以在 x 軸或 Y 軸上相乘相對指定的滑鼠動作,最多四次。
套用加速之後,系統會依所需的滑鼠速度調整結果值。 滑鼠速度的範圍可以從 1 (最慢) 到 20 (最快) ,並代表指標根據滑鼠移動距離移動的程度。 默認值為 10,這不會對滑鼠動作進行其他修改。
mouse_event函式可用來由需要執行此動作的應用程式合成滑鼠事件。 它也會由需要從滑鼠取得比其位置和按鈕狀態更多的資訊的應用程式使用。 例如,如果平板電腦製造商想要將手寫筆資訊傳遞給自己的應用程式,它可以撰寫直接與平板電腦硬體通訊的 DLL、取得額外的資訊,並將它儲存在佇列中。 然後,DLL 會使用標準按鈕和 x/y 位置數據來呼叫 mouse_event ,以及 dwExtraInfo 參數中的一些指標或索引,指向已排入佇列的額外資訊。 當應用程式需要額外的資訊時,它會使用 儲存在 dwExtraInfo 中的指標或索引來呼叫 DLL,而 DLL 會傳回額外的資訊。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | winuser.h (包含 Windows.h) |
程式庫 | User32.lib |
Dll | User32.dll |
另請參閱
概念
其他資源
參考