对象状态常量

本主题介绍用于描述应用程序 UI 中对象的状态的常量值。 状态常量在 oleacc.h 中定义。

对象随时与其中一个或多个状态值相关联。 不使用以下对象状态常量:STATE_SYSTEM_ALERT_HIGH、STATE_SYSTEM_ALERT_MEDIUM、STATE_SYSTEM_ALERT_LOW和STATE_SYSTEM_FLOATING。

客户端通过调用 IAccessible::get_accState来检索对象的状态,后者返回一个整数,该整数是以下位标志的组合。 客户端使用状态值调用 GetStateText,以检索描述对象状态的本地化字符串。

对象状态发生更改时,服务器应使用 EVENT_OBJECT_STATECHANGE 事件常量调用 NotifyWinEvent。 但是,具有STATE_SYSTEM_INVISIBLE、STATE_SYSTEM_FOCUSED和STATE_SYSTEM_ SELECTED 对象状态常量的对象有自己的事件常量。 对于这些对象,请勿使用 EVENT_OBJECT_STATECHANGE。 请改用单个事件常量。

以下是对象状态常量:

不断 描述
STATE_SYSTEM_ALERT_HIGH
0x10000000
(不支持此对象状态常量。
指示要立即向用户传达的重要信息。 例如,当电池达到严重低级别时,水平指示器将生成高级警报。 因此,盲人访问工具会立即向用户报出此信息,屏幕放大程序滚动屏幕,以便电池指示器处于视图中。 此状态也适用于用户继续之前必须完成的任何提示或操作。
STATE_SYSTEM_ALERT_MEDIUM
0x8000000
(不支持此对象状态常量。
指示不会立即传达给用户的重要信息。 例如,当电池开始达到低级别时,级别指示器将生成中等级别的警报。 然后,盲人访问工具会生成声音,让用户知道重要信息可用,而不会真正中断用户的工作。 然后,用户可以在方便时查询警报信息。
STATE_SYSTEM_ALERT_LOW
0x4000000
(不支持此对象状态常量。
指示对用户不重要的低优先级信息。 例如,当 Word 更改其工具栏上 TipWizard 按钮的外观以指示它具有提示时,会使用此状态。
STATE_SYSTEM_ANIMATED
0x4000
对象的外观会迅速或不断变化。 偶尔进行动画处理的图形描述为“状态”属性设置为STATE_SYSTEM_ANIMATED ROLE_SYSTEM_GRAPHIC。 此状态用于指示对象的位置正在更改。
STATE_SYSTEM_BUSY
0x800
控件目前无法接受输入。
STATE_SYSTEM_CHECKED
0x10
选中对象的复选框。
STATE_SYSTEM_COLLAPSED
0x400
具有 ROLE_SYSTEM_OUTLINEITEM 角色的对象子级处于隐藏状态。
STATE_SYSTEM_DEFAULT
0x100
此状态表示窗口中的默认按钮。
STATE_SYSTEM_EXPANDED
0x200
将显示具有 ROLE_SYSTEM_OUTLINEITEM 角色的对象子级。
STATE_SYSTEM_EXTSELECTABLE
0x2000000
指示对象通过在 IAccessible::accSelect 方法中使用 SELFLAG_EXTENDSELECTION 来扩展其选择。
STATE_SYSTEM_FLOATING
0x1000
(不支持此对象状态常量。
该对象不会剪切到其父对象的边界,并且不会在父对象移动时自动移动。
STATE_SYSTEM_FOCUSABLE
0x100000
对象位于活动窗口上,已准备好接收键盘焦点。
STATE_SYSTEM_FOCUSED
0x4
该对象具有键盘焦点。 不要将对象焦点与对象选择混淆。 有关详细信息,请参阅 选择和焦点属性和方法。 对于具有此对象状态的对象,请发送 EVENT_OBJECT_SHOWEVENT_OBJECT_HIDE WinEvents 以通知客户端应用程序状态更改。 请勿使用 EVENT_OBJECT_STATECHANGE
STATE_SYSTEM_HASPOPUP
0x40000000
调用时,对象将显示弹出菜单或窗口。
STATE_SYSTEM_HOTTRACKED
0x80
该对象由鼠标热跟踪,这意味着该对象的外观已更改为指示鼠标指针位于该对象上方。
STATE_SYSTEM_INVISIBLE
0x8000
对象以编程方式隐藏。 例如,在用户激活菜单之前,菜单 itmes 以编程方式隐藏。 由于具有此状态的对象对用户不可用,客户端应用程序不得向用户传达有关该对象的信息。 但是,如果客户端应用程序找到具有此状态的对象,则应检查是否还设置了STATE_SYSTEM_OFFSCREEN。 如果定义了第二种状态,客户端可以将有关对象的信息传达给用户。 例如,列表框可以同时设置STATE_SYSTEM_INVISIBLE和STATE_SYSTEM_OFFSCREEN。 在这种情况下,客户端应用程序可以向用户传达列表中的所有项。
如果客户端应用程序正在浏览 IAccessible 树并遇到不可见的父对象,则只要父级不可见,Microsoft Active Accessibility 将不会公开有关父级的任何可能子级的信息。
STATE_SYSTEM_LINKED
0x400000
指示对象的格式设置为超链接。 对象的角色通常 ROLE_SYSTEM_TEXT
STATE_SYSTEM_MARQUEED
0x2000
指示滚动或移动文本或图形。
STATE_SYSTEM_MIXED
0x20
指示未确定三态复选框或工具栏按钮的状态。 该复选框既未选中也不清除,因此处于第三个或 混合 状态。
STATE_SYSTEM_MOVEABLE
0x40000
指示可以移动对象。 例如,用户可以单击对象的标题栏并将对象拖动到新位置。
STATE_SYSTEM_MULTISELECTABLE
0x1000000
指示对象接受多个选定项;也就是说,IAccessible::accSelect 方法的 SELFLAG_ADDSELECTION 有效。
STATE_SYSTEM_NORMAL
0
指示对象没有为其分配另一个状态。
STATE_SYSTEM_OFFSCREEN
0x10000
对象被剪裁或已滚动出视图,但不以编程方式隐藏。 如果用户使视区变大,则计算机屏幕上会显示更多对象。
STATE_SYSTEM_PRESSED
0x8
按下对象。
STATE_SYSTEM_PROTECTED
0x20000000
对象是受密码保护的编辑控件。
STATE_SYSTEM_READONLY
0x40
对象指定为只读。
STATE_SYSTEM_SELECTABLE
0x200000
对象接受选择。
STATE_SYSTEM_SELECTED
0x2
选择对象。
STATE_SYSTEM_SELFVOICING
0x80000
对象或子对象使用文本转语音(TTS)技术进行说明。 当具有此状态的对象具有焦点时,基于语音的辅助功能助手不会报出信息,因为该对象会自动报出它。
STATE_SYSTEM_SIZEABLE
0x20000
可以调整对象的大小。 例如,用户可以通过按边框拖动窗口来更改窗口的大小。
STATE_SYSTEM_TRAVERSED
0x800000
对象是已由用户访问的超链接(以前已单击)。
STATE_SYSTEM_UNAVAILABLE
0x1
对象不可用。

要求

要求 价值
页眉
Oleacc.h