ITextRangeProvider::GetEnclosingElement 方法 (uiautomationcore.h)
返回包含指定文本范围的最内部元素。
语法
HRESULT GetEnclosingElement(
[out, retval] IRawElementProviderSimple **pRetVal
);
参数
[out, retval] pRetVal
类型: IRawElementProviderSimple**
包含指定 ITextRangeProvider 的最内部元素的UI 自动化提供程序。
注意
封闭元素可以跨越的不仅仅是指定的 ITextRangeProvider。
如果未找到封闭元素,则返回 ITextRangeProvider 的 ITextProvider 父级。
此参数未经初始化即被传递。
返回值
类型: HRESULT
如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
示例
此示例演示包含图像链接的文本流。 链接是图像的子级,但两者跨越相同的文本范围,并且作为文本流中的嵌入对象公开。
Hello <Image Link> World
- 图像和链接也是流的 ITextProvider 的后代,可以在调用 ITextProvider::RangeFromChild 时指定为子级Element。
- 使用图像或链接调用 ITextRangeProvider::RangeFromChild 将返回与 Range1) (相同的文本范围。
- GetChildren 不返回该链接。
- GetEnclosingElement 不返回任何文本范围的图像。
- Range1 上的 GetEnclosingElement 返回链接。
- Range1 上的 GetChildren 不返回任何子级。
- 流 ITextProvider 的文本范围上的 GetEnclosingElement 返回提供程序。
- 流 ITextProvider 的文本范围上的 GetChildren 仅返回图像。
此示例演示一个文本流,其中包含一个由文本包围的双单元格表。
开始文本
表格单元格 1 表单元格 2 结束文本
- 案例 1:流的 ITextProvider 和整个文本范围
- 整个文本区域中的 ITextRangeProvider::GetEnclosingElement 返回流的 ITextProvider。
- GetChildren 返回流 ITextProvider 的所有子元素,在本例中仅返回 table 元素。
- 案例 2:通过调用表元素上的 ITextProvider::RangeFromChild 获取的文本范围:
- ITextRangeProvider::GetEnclosingElement 返回 table 元素。
- ITextRangeProvider::GetChildren 返回这两个表单元格。
- 案例 3:跨越 表单元格 1 表单元格 2 的可视内容的文本范围:
- ITextRangeProvider::GetEnclosingElement 返回 table 元素。
- ITextRangeProvider::GetChildren 返回这两个表单元格。
- 案例 4:跨表格单元格 1 的单元格一词的文本范围:
- ITextRangeProvider::GetEnclosingElement 返回第一个单元格元素。
- ITextRangeProvider::GetChildren 不返回任何元素。
- 案例 5:一个退化 (空) 文本范围,表示表 (开始和第一个单元格) :
- ITextRangeProvider::GetEnclosingElement 返回 (最内层元素的第一个单元格元素,其中包含) 的退化范围。
- ITextRangeProvider::GetChildren 不返回任何元素。
- 案例 1:流的 ITextProvider 和整个文本范围
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | uiautomationcore.h (包括 UIAutomation.h) |
另请参阅
ITextProvider、ITextRangeProvider、ITextRangeProvider::GetChildren、UI 自动化提供程序概述