mouse_event函式 (winuser.h)

mouse_event函式會合成滑鼠動作和按鈕點選。

注意 此函式已被取代。 請改用 SendInput
 

語法

void mouse_event(
  [in] DWORD     dwFlags,
  [in] DWORD     dx,
  [in] DWORD     dy,
  [in] DWORD     dwData,
  [in] ULONG_PTR dwExtraInfo
);

參數

[in] dwFlags

類型: DWORD

控制滑鼠動作和按鈕按兩下的各種層面。 此參數可以是下列值的特定組合。

意義
MOUSEEVENTF_ABSOLUTE
0x8000
dxdy 參數包含標準化絕對座標。 如果未設定,這些參數會包含相對數據:自上次報告位置以來的位置變更。 不論何種滑鼠或類似滑鼠的裝置都連線到系統,都可以設定或未設定此旗標。 如需相對滑鼠動作的詳細資訊,請參閱下列一節。
MOUSEEVENTF_LEFTDOWN
0x0002
左按鈕已關閉。
MOUSEEVENTF_LEFTUP
0x0004
左按鈕已啟動。
MOUSEEVENTF_MIDDLEDOWN
0x0020
中間按鈕已關閉。
MOUSEEVENTF_MIDDLEUP
0x0040
中間按鈕向上。
MOUSEEVENTF_MOVE
0x0001
發生移動。
MOUSEEVENTF_RIGHTDOWN
0x0008
右按鈕已關閉。
MOUSEEVENTF_RIGHTUP
0x0010
右按鈕已啟動。
MOUSEEVENTF_WHEEL
0x0800
如果滑鼠有滾輪,則滾輪已經移動。 dwData 中指定移動量
MOUSEEVENTF_XDOWN
0x0080
按下 X 按鈕。
MOUSEEVENTF_XUP
0x0100
已釋放 X 按鈕。
MOUSEEVENTF_WHEEL
0x0800
滾輪按鈕會旋轉。
MOUSEEVENTF_HWHEEL
0x01000
滾輪按鈕傾斜。
 

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

您無法在 dwFlags 參數中同時指定MOUSEEVENTF_WHEELMOUSEEVENTF_XDOWNMOUSEEVENTF_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_XDOWNMOUSEEVENTF_XUP,dwData 會指定按下或放開的 X 按鈕。 此值可以是下列旗標的任何組合。

如果 dwFlags 不是 MOUSEEVENTF_WHEELMOUSEEVENTF_XDOWNMOUSEEVENTF_XUP則 dwData 應該是零。

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

[in] dwExtraInfo

類型: ULONG_PTR

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

傳回值

備註

如果滑鼠已移動 ,MOUSEEVENTF_MOVE被 設定, dxdy 會保留該動作的相關信息。 此資訊會指定為絕對或相對整數值。

如果指定 了MOUSEEVENTF_ABSOLUTE 值, dxdy 會包含介於 0 到 65,535 之間的標準化絕對座標。 事件過程會將這些座標對應到顯示介面。 坐標 (0,0) 對應到顯示介面的左上角, (65535,65535) 對應到右下角。

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

相對滑鼠動作受限於滑鼠速度和加速等級的設定。 終端使用者會在 控制台 中使用 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

另請參閱

概念

GetMessageExtraInfo

滑鼠輸入

其他資源

參考

SystemParametersInfo