Winuser.h (事件常數)

本主題描述作業系統和伺服器應用程式所產生的事件。 常數會依字母順序列出。

使用這些事件之前,用戶端應用程式應該使用 可存取的事件監看員 來確認 UI 元素是否使用這些事件。

如需一般事件的詳細資訊,請參閱 什麼是 WinEvents?系統層級和物件層級事件。 如需系統所傳送事件的詳細資訊,請參閱 附錄 A:支援的使用者介面元素參考

常數/值 Description
EVENT_AIA_START / EVENT_AIA_END
0xA000-0xAFFF
協助工具互通性聯盟所指定的 WinEvent 常數值範圍, (AIA) ,供業界使用。 如需詳細資訊,請參閱 WinEvent 識別碼的配置
EVENT_MIN / EVENT_MAX
0x00000001-0x7FFFFFFF
最低和最高的可能事件值。
EVENT_OBJECT_ACCELERATORCHANGE
0x8012
物件的 KeyboardShortcut 屬性 已變更。 伺服器應用程式為它們的可存取物件傳送這個事件。
EVENT_OBJECT_CLOAKED
0x8017
當視窗被遮蔽時傳送。 隱藏的視窗仍然存在,但使用者看不見。
EVENT_OBJECT_CONTENTSCROLLED
0x8015
視窗物件的捲動已結束。 不同于 EVENT_SYSTEM_SCROLLEND,此事件會與捲動視窗相關聯。 不論捲動是水準或垂直捲動,每當捲動動作完成時,都應該傳送此事件。
WinEventProc 回呼函式的hwnd參數描述捲動視窗;idObject參數是OBJID_CLIENT,而idChild參數CHILDID_SELF。
EVENT_OBJECT_CREATE
0x8000
已建立 物件。 系統會傳送下列使用者介面元素的這個事件:插入號、 標頭控制項清單檢視控制項索引標籤控制項工具列控制項樹狀檢視控制項視窗 物件。 伺服器應用程式為它們的可存取物件傳送這個事件。
在傳送父物件的事件之前,伺服器必須針對物件的所有子物件傳送它。 伺服器必須確定所有子物件都已完整建立,並準備好在父物件傳送此事件之前接受來自用戶端的 IAccessible 呼叫。
因為父物件是在子物件之後建立,所以用戶端必須在呼叫 IAccessible::get_accParent之前,確定已建立物件的父代,特別是使用內容內攔截函式時。
EVENT_OBJECT_DEFACTIONCHANGE
0x8011
物件的 DefaultAction 屬性 已變更。 系統為對話方塊傳送這個屬性。 伺服器應用程式為它們的可存取物件傳送這個事件。
EVENT_OBJECT_DESCRIPTIONCHANGE
0x800D
物件的 Description 屬性 已變更。 伺服器應用程式為它們的可存取物件傳送這個事件。
EVENT_OBJECT_DESTROY
0x8001
物件已終結。 系統會傳送下列使用者介面元素的這個事件:插入號、標頭控制項、清單檢視控制項、索引標籤控制項、工具列控制項、樹狀檢視控制項和視窗物件。 伺服器應用程式為它們的可存取物件傳送這個事件。
用戶端假設當父物件傳送此事件時,所有物件的子系都會終結。
收到此事件之後,用戶端不會呼叫物件的 IAccessible 屬性或方法。 不過,只要介面指標的參考計數 (,因為 COM 規則) ,但 UI 元素可能不再存在,則介面指標必須保持有效。 介面指標上的進一步呼叫可能會傳回失敗錯誤;為了避免這種情況,伺服器 會建立 Proxy 物件 並監視其生命週期。
EVENT_OBJECT_DRAGSTART
0x8021
使用者已開始拖曳專案。 WinEventProc回呼函式的hwndidObjectidChild參數會識別正在拖曳的物件。
EVENT_OBJECT_DRAGCANCEL
0x8022
使用者已結束拖曳作業,再將拖曳的專案放在置放目標上。 WinEventProc回呼函式的hwndidObjectidChild參數會識別正在拖曳的物件。
EVENT_OBJECT_DRAGCOMPLETE
0x8023
使用者已卸載目標上的專案。 WinEventProc回呼函式的hwndidObjectidChild參數會識別正在拖曳的物件。
EVENT_OBJECT_DRAGENTER
0x8024
使用者將元素拖曳到置放目標的界限。 WinEventProc回呼函式的hwndidObjectidChild參數會識別置放目標。
EVENT_OBJECT_DRAGLEAVE
0x8025
使用者已將元素拖出置放目標的界限。 WinEventProc回呼函式的hwndidObjectidChild參數會識別置放目標。
EVENT_OBJECT_DRAGDROPPED
0x8026
使用者已卸載目標上的專案。 WinEventProc回呼函式的hwndidObjectidChild參數會識別置放目標。
EVENT_OBJECT_END
0x80FF
最高物件事件值。
EVENT_OBJECT_FOCUS
0x8005
物件已接收鍵盤焦點。 系統會傳送下列使用者介面元素的這個事件:清單檢視控制項、功能表列、快顯功能表、切換視窗、索引標籤控制項、樹狀檢視控制項和視窗物件。 伺服器應用程式為它們的可存取物件傳送這個事件。
WinEventProc 回呼函式的hwnd參數會識別接收鍵盤焦點的視窗。
EVENT_OBJECT_HELPCHANGE
0x8010
物件的 Help 屬性 已變更。 伺服器應用程式為它們的可存取物件傳送這個事件。
EVENT_OBJECT_HIDE
0x8003
物件被隱藏。 系統會傳送下列使用者介面元素的這個事件:插入號和游標。 伺服器應用程式為它們的可存取物件傳送這個事件。
當父物件產生這個事件時,所有子物件都已經隱藏。 伺服器應用程式不會傳送子物件的這個事件。
隱藏的物件包括 STATE_SYSTEM_INVISIBLE 旗標;顯示的物件不包含此旗標。 EVENT_OBJECT_HIDE事件也會指出已設定STATE_SYSTEM_INVISIBLE旗標。 因此,伺服器在此案例中不會傳送 EVENT_OBJECT_STATECHANGE 事件。
EVENT_OBJECT_HOSTEDOBJECTSINVALIDATED
0x8020
裝載其他可存取物件的視窗已變更裝載的物件。 用戶端可能需要查詢主機視窗來探索新的託管物件,特別是當用戶端已從視窗監視事件時。 託管物件是來自協助工具架構的物件, (MSAA 或 UI 自動化) 與主機不同的物件。 來自與主機相同架構的託管物件變更,應該會處理結構變更事件,例如 MSAA 的EVENT_OBJECT_CREATE 。 如需詳細資訊,請參閱 winuser.h 內的批註。
EVENT_OBJECT_IME_HIDE
0x8028
IME 視窗已隱藏。
EVENT_OBJECT_IME_SHOW
0x8027
IME 視窗已變成可見。
EVENT_OBJECT_IME_CHANGE
0x8029
IME 視窗的大小或位置已變更。
EVENT_OBJECT_INVOKED
0x8013
已叫用 物件;例如,使用者已按一下按鈕。 一般控制項支援此事件,並供使用者介面自動化使用。
針對此事件,WinEventProc回呼函式的hwndIDidChild參數會識別叫用的專案。
EVENT_OBJECT_LIVEREGIONCHANGED
0x8019
屬於即時區域一部分的物件已變更。 即時區域是經常變更和/或非同步應用程式區域。
EVENT_OBJECT_LOCATIONCHANGE
0x800B
物件已變更位置、形狀或大小。 系統會針對下列使用者介面元素傳送此事件:插入號和視窗物件。 伺服器應用程式為它們的可存取物件傳送這個事件。
產生此事件以回應物件階層中最上層物件的變更;它不會針對物件可能擁有的任何子系產生。 例如,如果使用者調整視窗大小,系統會傳送此通知給視窗,但不會針對功能表列、標題列、捲軸或其他已變更的物件傳送。
父系移動時,系統不會為每個非浮動的子視窗傳送這個事件。 不過,如果應用程式因為重設父視窗大小而明確調整子視窗大小,系統就會針對調整大小的子系傳送多個事件。
如果物件的 State 屬性 設定為 STATE_SYSTEM_FLOATING,則每當物件變更位置時,伺服器就會傳送 EVENT_OBJECT_LOCATIONCHANGE 。 如果物件沒有這個狀態,伺服器只會在物件相對於其父代移動時觸發此事件。 針對此事件通知,WinEventProc回呼函式的idChild參數會識別已變更的子物件。
EVENT_OBJECT_NAMECHANGE
0x800C
物件的 Name 屬性 已變更。 系統會傳送下列使用者介面元素的這個事件:核取方塊、游標、清單檢視控制項、按鈕、選項按鈕、狀態列控制項、樹狀檢視控制項和視窗物件。 伺服器應用程式為它們的可存取物件傳送這個事件。
EVENT_OBJECT_PARENTCHANGE
0x800F
物件有新的父物件。 伺服器應用程式為它們的可存取物件傳送這個事件。
EVENT_OBJECT_REORDER
0x8004
容器物件已新增、移除或重新排列它的子系。 系統會針對下列使用者介面元素傳送此事件:標頭控制項、清單檢視控制項、工具列控制項和視窗物件。 伺服器應用程式為它們的可存取物件傳送這個事件。
例如,當子專案數目或元素的順序變更時,清單檢視物件會產生這個事件。 當子視窗的 Z 順序變更時,父視窗也會傳送此事件。
EVENT_OBJECT_SELECTION
0x8006
容器物件內的選取範圍已變更。 系統會針對下列使用者介面元素傳送此事件:清單檢視控制項、索引標籤控制項、樹狀檢視控制項和視窗物件。 伺服器應用程式為它們的可存取物件傳送這個事件。
此事件會發出單一選取訊號:在先前未包含任何選取子系的容器中選取子系,或選取範圍已從一個子系變更為另一個子系。
WinEventProc回呼函式的hwndidObject參數描述容器;idChild參數會識別選取的物件。 如果選取的子系是同時包含物件的視窗,則會OBJID_WINDOWidChild參數。
EVENT_OBJECT_SELECTIONADD
0x8007
容器物件內的子系已新增至現有的選取範圍。 系統會針對下列使用者介面元素傳送此事件:清單方塊、清單檢視控制項和樹狀檢視控制項。 伺服器應用程式為它們的可存取物件傳送這個事件。
WinEventProc回呼函式的hwndidObject參數描述容器。 idChild參數是新增至選取範圍的子系。
EVENT_OBJECT_SELECTIONREMOVE
0x8008
容器物件內的專案已從選取範圍中移除。 系統會針對下列使用者介面元素傳送此事件:清單方塊、清單檢視控制項和樹狀檢視控制項。 伺服器應用程式為它們的可存取物件傳送這個事件。
這個事件表示子系已從現有的選取範圍中移除。
WinEventProc回呼函式的hwndidObject參數描述容器;idChild參數會識別已從選取範圍中移除的子系。
EVENT_OBJECT_SELECTIONWITHIN
0x8009
容器物件內發生許多選取專案變更。 系統會傳送此事件給清單方塊;伺服器應用程式會將其傳送給其可存取的物件。
當控制項內選取的專案已大幅變更時,就會傳送此事件。 事件會通知用戶端發生許多選取變更,而且會傳送它,而不是數 個EVENT_OBJECT_SELECTIONADDEVENT_OBJECT_SELECTIONREMOVE 事件。 用戶端會呼叫容器物件的 IAccessible::get_accSelection 方法並列舉選取的專案,以查詢選取的專案。
針對此事件通知,WinEventProc回呼函式的hwndidObject參數會描述發生變更的容器。
EVENT_OBJECT_SHOW
0x8002
顯示隱藏的物件。 系統為以下使用者介面項目傳送這個事件:插入號、游標、視窗物件。 伺服器應用程式為它們的可存取物件傳送這個事件。
用戶端會假設當父物件傳送此事件時,所有子物件都已經顯示。 因此,伺服器應用程式不會傳送子物件的這個事件。
隱藏的物件包括 STATE_SYSTEM_INVISIBLE 旗標;顯示的物件不包含此旗標。 EVENT_OBJECT_SHOW事件也會指出已清除STATE_SYSTEM_INVISIBLE旗標。 因此,伺服器在此案例中不會傳送 EVENT_OBJECT_STATECHANGE 事件。
EVENT_OBJECT_STATECHANGE
0x800A
物件的狀態已經變更。 系統會傳送下列使用者介面元素的這個事件:核取方塊、下拉式方塊、標頭控制項、按鈕、選項按鈕、捲軸、工具列控制項、樹狀檢視控制項、向上控制項和視窗物件。 伺服器應用程式為它們的可存取物件傳送這個事件。
例如,當按一下或放開按鈕物件,或啟用或停用物件時,就會發生狀態變更。
針對此事件通知,WinEventProc回呼函式的idChild參數會識別狀態已變更的子物件。
EVENT_OBJECT_TEXTEDIT_CONVERSIONTARGETCHANGED
0x8030
輸入法組合內的轉換目標已變更。 轉換目標是輸入法組合的子集,主動選取作為使用者起始轉換的目標。
EVENT_OBJECT_TEXTSELECTIONCHANGED
0x8014
物件的文字選取範圍已變更。 一般控制項支援此事件,並供使用者介面自動化使用。
WinEventProc回呼函式的hwndIDidChild參數描述更新文字選取範圍中包含的專案。
EVENT_OBJECT_UNCLOAKED
0x8018
當視窗未遮蔽時傳送。 隱藏的視窗仍然存在,但使用者看不到。
EVENT_OBJECT_VALUECHANGE
0x800E
物件的 Value 屬性 已變更。 系統會為包含捲軸和下列控制項的使用者介面元素傳送此事件:編輯、標頭、熱鍵、進度列、滑杆和向上。 伺服器應用程式為它們的可存取物件傳送這個事件。
EVENT_OEM_DEFINED_START / EVENT_OEM_DEFINED_END
0x0101-0x01FF
保留給 OEM 的事件常數值範圍。 如需詳細資訊,請參閱 WinEvent 識別碼的配置
EVENT_SYSTEM_ALERT
0x0002
已產生警示。 伺服器應用程式不應該傳送此事件。
EVENT_SYSTEM_ARRANGMENTPREVIEW
0x8016
正在顯示預覽矩形。
EVENT_SYSTEM_CAPTUREEND
0x0009
視窗已失去滑鼠捕捉 (Mouse Capture)。 此事件是由系統傳送,永遠不會由伺服器傳送。
EVENT_SYSTEM_CAPTURESTART
0x0008
視窗已收到滑鼠擷取。 此事件是由系統傳送,永遠不會由伺服器傳送。
EVENT_SYSTEM_CONTEXTHELPEND
0x000D
視窗已結束內容相關的說明模式。 系統不會一致地傳送此事件。
EVENT_SYSTEM_CONTEXTHELPSTART
0x000C
視窗已進入內容相關的 [說明] 模式。 系統不會一致地傳送此事件。
EVENT_SYSTEM_DESKTOPSWITCH
0x0020
已切換使用中的桌面。
EVENT_SYSTEM_DIALOGEND
0x0011
對話方塊已經關閉。 系統會針對標準對話方塊傳送此事件;伺服器會傳送給自訂對話方塊。 系統不會一致地傳送此事件。
EVENT_SYSTEM_DIALOGSTART
0x0010
已顯示對話方塊。 系統會針對使用資源範本或 Win32 對話方塊函式所建立的標準對話方塊傳送此事件。 伺服器會針對自訂對話方塊傳送此事件,這些對話方塊是做為對話方塊的視窗,但不會以標準方式建立。
系統不會一致地傳送此事件。
EVENT_SYSTEM_DRAGDROPEND
0x000F
應用程式即將結束拖放模式。 支援拖放作業的應用程式必須傳送此事件;系統不會傳送此事件。
EVENT_SYSTEM_DRAGDROPSTART
0x000E
應用程式即將進入拖放模式。 支援拖放作業的應用程式必須傳送此事件,因為系統不會傳送它。
EVENT_SYSTEM_END
0x00FF
最高系統事件值。
EVENT_SYSTEM_FOREGROUND
0x0003
前景視窗已變更。 即使前景視窗已變更為相同執行緒中的另一個視窗,系統也會傳送此事件。 伺服器應用程式絕對不會傳送這個事件。
針對此事件, WinEventProc 回呼函式的 hwnd 參數是前景視窗的控制碼、 idObject 參數 是OBJID_WINDOW,而 idChild 參數則是 CHILDID_SELF
EVENT_SYSTEM_MENUPOPUPEND
0x0007
快顯功能表已關閉。 系統會針對標準功能表傳送此事件;伺服器會將其傳送給自訂功能表。
當快顯視窗關閉時,用戶端會收到此訊息,然後 EVENT_SYSTEM_MENUEND 事件。
系統不會一致地傳送此事件。
EVENT_SYSTEM_MENUPOPUPSTART
0x0006
快顯功能表已顯示。 系統會針對 HMENU所識別的標準功能表傳送此事件,並使用功能表範本資源或 Win32 功能表函式建立。 伺服器會針對自訂功能表傳送此事件,這些自訂功能表是使用者介面元素,這些元素可作為功能表,但不會以標準方式建立。 系統不會一致地傳送此事件。
EVENT_SYSTEM_MENUEND
0x0005
功能表列的功能表已經關閉。 系統會針對標準功能表傳送此事件;伺服器會將其傳送給自訂功能表。
針對此事件, WinEventProc 回呼函式的 hwndidObjectidChild 參數會參考包含功能表列或啟動操作功能表的控制項。 hwnd參數是與事件相關的視窗控制碼。 idObject參數是功能表OBJID_MENUOBJID_SYSMENU,或是快顯功能表的OBJID_WINDOWidChild參數CHILDID_SELF。
EVENT_SYSTEM_MENUSTART
0x0004
已選取功能表列上的功能表項目。 系統會針對使用功能表範本資源或 Win32 功能表 API 元素所識別的標準功能表傳送此事件。 伺服器會針對自訂功能表傳送此事件,這些是使用者介面元素,這些元素會以功能表的形式運作,但不會以標準方式建立。
針對此事件, WinEventProc 回呼函式的 hwndidObjectidChild 參數會參考包含功能表列或啟動操作功能表的控制項。 hwnd參數是與事件相關的視窗控制碼。 idObject參數是功能表的OBJID_MENUOBJID_SYSMENU,或是快顯功能表的OBJID_WINDOWidChild參數CHILDID_SELF
系統會觸發一個以上的 EVENT_SYSTEM_MENUSTART 事件,該事件不一定與 EVENT_SYSTEM_MENUEND 事件相對應。
EVENT_SYSTEM_MINIMIZEEND
0x0017
視窗物件即將還原。 此事件是由系統傳送,永遠不會由伺服器傳送。
EVENT_SYSTEM_MINIMIZESTART
0x0016
視窗物件即將最小化。 此事件是由系統傳送,永遠不會由伺服器傳送。
EVENT_SYSTEM_MOVESIZEEND
0x000B
視窗的移動或調整大小已完成。 此事件是由系統傳送,永遠不會由伺服器傳送。
EVENT_SYSTEM_MOVESIZESTART
0x000A
視窗正被移動或重設大小。 此事件是由系統傳送,永遠不會由伺服器傳送。
EVENT_SYSTEM_SCROLLINGEND
0x0013
捲動已在捲軸處結束。 此事件是由系統針對標準捲軸控制項和附加至視窗的捲軸傳送。 伺服器會針對自訂捲軸傳送此事件,這些是使用者介面元素,可做為捲軸,但不會以標準方式建立。
傳送至WinEventProc 回呼函式的idObject參數會針對水準捲軸OBJID_HSCROLL,而垂直捲動條OBJID_VSCROLL
EVENT_SYSTEM_SCROLLINGSTART
0x0012
捲動已在捲軸處開始。 系統會針對標準捲軸控制項和附加至視窗的捲軸傳送此事件。 伺服器會針對自訂捲軸傳送此事件,這些是使用者介面元素,可做為捲軸,但不會以標準方式建立。
傳送至WinEventProc 回呼函式的idObject參數會針對水準捲軸OBJID_HSCROLL,而垂直捲動條OBJID_VSCROLL
EVENT_SYSTEM_SOUND
0x0001
已播放音效。 系統會在系統音效,例如功能表的音效時傳送此事件,即使沒有音效 (例如,因為缺少聲音檔或音效卡) 。 每當自訂 UI 元素產生音效時,伺服器就會傳送此事件。
針對這個事件, WinEventProc 回 呼函式會接收 OBJID_SOUND 值作為 idObject 參數。
EVENT_SYSTEM_SWITCHEND
0x0015
使用者已發行 ALT+TAB。 此事件是由系統傳送,永遠不會由伺服器傳送。 WinEventProc 回呼函式的hwnd參數會識別使用者已切換的視窗。
如果使用者按下 ALT+TAB 時,只有一個應用程式正在執行,系統就會傳送此事件,而不需要對應的 EVENT_SYSTEM_SWITCHSTART 事件。
EVENT_SYSTEM_SWITCHSTART
0x0014
使用者已按下 ALT+TAB,這會啟動切換視窗。 此事件是由系統傳送,永遠不會由伺服器傳送。 WinEventProc 回呼函式的hwnd參數會識別使用者正在切換的視窗。
如果使用者按下 ALT+TAB 時,只有一個應用程式正在執行,則系統會傳送 EVENT_SYSTEM_SWITCHEND 事件,而不需要對應的 EVENT_SYSTEM_SWITCHSTART 事件。
EVENT_UIA_EVENTID_START / EVENT_UIA_EVENTID_END
0x4E00-0x4EFF
保留給使用者介面自動化事件識別碼的事件常數值範圍。 如需詳細資訊,請參閱 WinEvent 識別碼的配置
EVENT_UIA_PROPID_START / EVENT_UIA_PROPID_END
0x7500-0x75FF
保留給使用者介面自動化屬性變更事件識別碼的事件常數值範圍。 如需詳細資訊,請參閱 WinEvent 識別碼的配置

規格需求

需求
標頭
Winuser.h (包括 Windows.h)