滑鼠輸入
本節說明系統如何將滑鼠輸入提供給您的應用程式,以及應用程式如何接收和處理該輸入。
本節內容
主題 | 描述 |
---|---|
關於滑鼠輸入 |
本主題討論滑鼠輸入。 |
使用滑鼠輸入 |
本節涵蓋與滑鼠輸入相關聯的工作。 |
滑鼠輸入參考 |
函式
名稱 | 描述 |
---|---|
_TrackMouseEvent | 當滑鼠指標離開視窗或將滑鼠停留在視窗上,以指定的時間量張貼訊息。 如果 TrackMouseEvent 存在,此函式會呼叫 TrackMouseEvent ,否則會模擬它。 |
BlockInput | 封鎖鍵盤和滑鼠輸入事件,以到達應用程式。 |
DragDetect | 擷取滑鼠並追蹤其移動,直到使用者放開左側按鈕、按下 ESC 鍵,或將滑鼠移到指定點周圍的拖曳矩形外。 拖曳矩形的寬度和高度是由GetSystemMetrics函式所傳回的SM_CXDRAG和SM_CYDRAG值所指定。 |
EnableMouseInPointer | 可讓滑鼠做為指向裝置。 |
EnableWindow | 啟用或停用指定視窗或控制項的滑鼠和鍵盤輸入。 停用輸入時,視窗不會收到輸入,例如滑鼠按一下和按下按鍵。 啟用輸入時,視窗會接收所有輸入。 |
GetCapture | 如果已擷取滑鼠的任何) ,則擷取視窗的控制碼 (。 一次只能擷取滑鼠;不論游標是否在其框線內,此視窗都會收到滑鼠輸入。 |
GetDoubleClickTime | 擷取滑鼠目前的按兩下時間。 按兩下是一系列兩次按一下滑鼠按鍵,第二次發生在第一次指定的時間內。 按兩下時間是第一次和第二次按一下按兩下之間可能發生的最大毫秒數。 |
GetMouseMovePointsEx | 擷取最多 64 個先前滑鼠或手寫筆座標的歷程記錄。 |
IsWindowEnabled | 判斷是否為滑鼠和鍵盤輸入啟用指定的視窗。 |
ReleaseCapture | 從目前線程中的視窗釋放滑鼠擷取,並還原一般的滑鼠輸入處理。 擷取滑鼠的視窗會接收所有滑鼠輸入,不論游標的位置為何,除非按一下滑鼠按鍵,而游標作用點位於另一個執行緒的視窗中。 |
SendInput | 合成按鍵、滑鼠動作和按鈕點選。 |
SetCapture | 將滑鼠擷取設定為屬於目前線程的指定視窗。 當滑鼠位於擷取視窗上方時,SetCapture會擷取滑鼠輸入,或在滑鼠停留在擷取視窗上方且按鈕仍然關閉時按下滑鼠按鍵時。 一次只能擷取滑鼠。 如果滑鼠游標位於另一個執行緒所建立的視窗上方,則只有在滑鼠按鍵關閉時,系統才會將滑鼠輸入導向指定的視窗。 |
SetDoubleClickTime | 設定滑鼠的按兩下時間。 按兩下是一系列兩次按一下滑鼠按鍵,第二次發生在第一次指定的時間內。 按兩下時間是第一次和第二次點選按兩下之間可能發生的最大毫秒數。 |
SwapMouseButton | 反轉或還原左右滑鼠按鍵的意義。 |
TrackMouseEvent | 當滑鼠指標離開視窗或將滑鼠停留在視窗上,以指定的時間量張貼訊息。 |
下列函式已過時。
函式 | 描述 |
---|---|
mouse_event | 合成滑鼠動作和按鈕點選。 |
通知
名稱 | 描述 |
---|---|
WM_APPCOMMAND | 例如,藉由按一下應用程式命令按鈕或在鍵盤上輸入應用程式命令鍵,通知使用者產生應用程式命令事件。 |
WM_CAPTURECHANGED | 傳送至遺失滑鼠擷取的視窗。 |
WM_LBUTTONDBLCLK | 當使用者按兩下滑鼠左鍵,游標位於視窗的工作區時張貼。 如果未擷取滑鼠,訊息就會張貼到游標下方的視窗。 否則,訊息會張貼至已擷取滑鼠的視窗。 |
WM_LBUTTONDOWN | 當使用者在游標位於視窗的工作區時,按下滑鼠左鍵時張貼。 如果未擷取滑鼠,訊息就會張貼到游標下方的視窗。 否則,訊息會張貼至已擷取滑鼠的視窗。 |
WM_LBUTTONUP | 當使用者放開滑鼠左鍵時,游標位於視窗的工作區時張貼。 如果未擷取滑鼠,訊息就會張貼到游標下方的視窗。 否則,訊息會張貼至已擷取滑鼠的視窗。 |
WM_MBUTTONDBLCLK | 當使用者按兩下滑鼠中間按鈕,游標位於視窗的工作區時張貼。 如果未擷取滑鼠,訊息就會張貼到游標下方的視窗。 否則,訊息會張貼至已擷取滑鼠的視窗。 |
WM_MBUTTONDOWN | 當使用者按下中間滑鼠按鍵時,游標位於視窗的工作區時張貼。 如果未擷取滑鼠,訊息就會張貼到游標下方的視窗。 否則,訊息會張貼至已擷取滑鼠的視窗。 |
WM_MBUTTONUP | 當使用者放開中間滑鼠按鍵時,游標位於視窗的工作區時張貼。 如果未擷取滑鼠,訊息就會張貼到游標下方的視窗。 否則,訊息會張貼至已擷取滑鼠的視窗。 |
WM_MOUSEACTI加值稅E | 當游標位於非使用中的視窗中,且使用者按下滑鼠按鍵時傳送。 只有在子視窗將它傳遞至 DefWindowProc 函式時,父視窗才會收到此訊息。 |
WM_MOUSEHOVER | 當游標停留在視窗的工作區上時,在 呼叫 TrackMouseEvent之前所指定的時段內,張貼至視窗。 |
WM_MOUSEHWHEEL | 當滑鼠的水準滾動滾輪傾斜或旋轉時,傳送至焦點視窗。 DefWindowProc 函式會將訊息傳播至視窗的父系。 訊息不應該有內部轉送,因為 DefWindowProc 會將它傳播到父鏈結,直到找到處理它的視窗為止。 |
WM_MOUSELEAVE | 當游標離開 對 TrackMouseEvent之前呼叫中指定的視窗工作區時,張貼至視窗。 |
WM_MOUSEMOVE | 游標移動時張貼至視窗。 如果未擷取滑鼠,訊息會張貼至包含游標的視窗。 否則,訊息會張貼至已擷取滑鼠的視窗。 |
WM_MOUSEWHEEL | 旋轉滑鼠滾輪時傳送至焦點視窗。 DefWindowProc 函式會將訊息傳播至視窗的父系。 訊息不應該有內部轉送,因為 DefWindowProc 會將它傳播到父鏈結,直到找到處理它的視窗為止。 |
WM_NCHITTEST | 傳送至視窗,以判斷視窗的哪個部分對應至特定螢幕座標。 例如,當游標移動、按下或放開滑鼠按鍵,或回應 對 WindowFromPoint等函式的呼叫時,就會發生這種情況。 如果未擷取滑鼠,訊息就會傳送至游標下方的視窗。 否則,訊息會傳送至已擷取滑鼠的視窗。 |
WM_NCLBUTTONDBLCLK | 當使用者按兩下滑鼠左鍵,游標位於視窗的非工作區內時張貼。 此訊息會張貼至包含游標的視窗。 如果視窗已擷取滑鼠,則不會張貼此訊息。 |
WM_NCLBUTTONDOWN | 當使用者按下滑鼠左鍵時,游標位於視窗的非工作區內時張貼。 此訊息會張貼至包含游標的視窗。 如果視窗已擷取滑鼠,則不會張貼此訊息。 |
WM_NCLBUTTONUP | 當使用者放開滑鼠左鍵時,游標位於視窗的非工作區內時張貼。 此訊息會張貼至包含游標的視窗。 如果視窗已擷取滑鼠,則不會張貼此訊息。 |
WM_NCMBUTTONDBLCLK | 當使用者按兩下滑鼠中間鍵,游標位於視窗的非工作區時張貼。 此訊息會張貼至包含游標的視窗。 如果視窗已擷取滑鼠,則不會張貼此訊息。 |
WM_NCMBUTTONDOWN | 當使用者按下滑鼠中間鍵時,游標位於視窗的非工作區內時張貼。 此訊息會張貼至包含游標的視窗。 如果視窗已擷取滑鼠,則不會張貼此訊息。 |
WM_NCMBUTTONUP | 當使用者放開滑鼠中間鍵時,游標位於視窗的非工作區時張貼。 此訊息會張貼至包含游標的視窗。 如果視窗已擷取滑鼠,則不會張貼此訊息。 |
WM_NCMOUSEHOVER | 當游標停留在視窗的非工作區上時,在呼叫 TrackMouseEvent之前所指定的時段內,張貼至視窗。 |
WM_NCMOUSELEAVE | 當游標離開在呼叫 TrackMouseEvent之前所指定視窗的非工作區時,張貼至視窗。 |
WM_NCMOUSEMOVE | 當游標在視窗的非工作區內移動時,張貼至視窗。 此訊息會張貼至包含游標的視窗。 如果視窗已擷取滑鼠,則不會張貼此訊息。 |
WM_NCRBUTTONDBLCLK | 當使用者按兩下滑鼠右鍵,游標位於視窗的非工作區時張貼。 此訊息會張貼至包含游標的視窗。 如果視窗已擷取滑鼠,則不會張貼此訊息。 |
WM_NCRBUTTONDOWN | 當使用者按下滑鼠右鍵時,游標位於視窗的非工作區內時張貼。 此訊息會張貼至包含游標的視窗。 如果視窗已擷取滑鼠,則不會張貼此訊息。 |
WM_NCRBUTTONUP | 當使用者放開滑鼠右鍵時,游標位於視窗的非工作區時張貼。 此訊息會張貼至包含游標的視窗。 如果視窗已擷取滑鼠,則不會張貼此訊息。 |
WM_NCXBUTTONDBLCLK | 當使用者按兩下第一個或第二個 X 按鈕時,游標位於視窗的非工作區時張貼。 此訊息會張貼至包含游標的視窗。 如果視窗已擷取滑鼠,則不會張貼此訊息。 |
WM_NCXBUTTONDOWN | 當使用者按下第一個或第二個 X 按鈕時,游標位於視窗的非工作區時張貼。 此訊息會張貼至包含游標的視窗。 如果視窗已擷取滑鼠,則不會張貼此訊息。 |
WM_NCXBUTTONUP | 當使用者放開第一個或第二個 X 按鈕時,游標位於視窗的非工作區時張貼。 此訊息會張貼至包含游標的視窗。 如果視窗已擷取滑鼠,則不會張貼此訊息。 |
WM_RBUTTONDBLCLK | 當使用者按兩下滑鼠右鍵,游標位於視窗的工作區時張貼。 如果未擷取滑鼠,訊息就會張貼到游標下方的視窗。 否則,訊息會張貼至已擷取滑鼠的視窗。 |
WM_RBUTTONDOWN | 當使用者按下滑鼠右鍵時,游標位於視窗的工作區時張貼。 如果未擷取滑鼠,訊息就會張貼到游標下方的視窗。 否則,訊息會張貼至已擷取滑鼠的視窗。 |
WM_RBUTTONUP | 當使用者放開滑鼠右鍵時,游標位於視窗的工作區時張貼。 如果未擷取滑鼠,訊息就會張貼到游標下方的視窗。 否則,訊息會張貼至已擷取滑鼠的視窗。 |
WM_XBUTTONDBLCLK | 當使用者按兩下第一個或第二個 X 按鈕時,游標位於視窗的工作區時張貼。 如果未擷取滑鼠,訊息就會張貼到游標下方的視窗。 否則,訊息會張貼至已擷取滑鼠的視窗。 |
WM_XBUTTONDOWN | 當使用者按下第一個或第二個 X 按鈕時,游標位於視窗的工作區時張貼。 如果未擷取滑鼠,訊息就會張貼到游標下方的視窗。 否則,訊息會張貼至已擷取滑鼠的視窗。 |
WM_XBUTTONUP | 當使用者放開第一個或第二個 X 按鈕時,游標位於視窗的工作區時張貼。 如果未擷取滑鼠,訊息就會張貼到游標下方的視窗。 否則,訊息會張貼至已擷取滑鼠的視窗。 |
結構
名稱 | 描述 |
---|---|
HARDWAREINPUT | 包含鍵盤或滑鼠以外的輸入裝置所產生的模擬訊息相關資訊。 |
輸入 | 包含用於合成輸入事件的資訊,例如按鍵、滑鼠移動和滑鼠點選。 |
LASTINPUTINFO | 包含最後一個輸入的時間。 |
MOUSEINPUT | 包含模擬滑鼠事件的相關資訊。 |
MOUSEMOVEPOINT | 包含螢幕座標中滑鼠位置的相關資訊。 |
TRACKMOUSEEVENT | TrackMouseEvent函式用來追蹤滑鼠指標離開視窗或將滑鼠停留在視窗的時間量。 |
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應