IUIAutomationTextRange::Move 方法 (uiautomationclient.h)

将文本范围向前或向后移动指定的文本单位数。

语法

HRESULT Move(
  [in]          TextUnit unit,
  [in]          int      count,
  [out, retval] int      *moved
);

参数

[in] unit

类型: TextUnit

一个 值,该值指定文本单位的类型,例如字符、单词、段落等。

[in] count

类型: int

要移动的文本单位数。 正值将文本范围向前移动。 负值将文本范围向后移动。 零无效。

[out, retval] moved

类型: int*

接收实际移动的文本单位数。 如果新文本范围终结点之一大于或小于 IUIAutomationTextPattern::D ocumentRange 方法检索到的终结点,则此值可能小于请求的数量。 如果导航在向后方向进行,则此值可以为负值。

返回值

类型: HRESULT

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

IUIAutomationTextRange::Move 移动文本范围以跨越文本的不同部分;它不会以任何方式更改文本。

对于非退化 (非空) 文本范围, IUIAutomationTextRange::Move 通过执行以下步骤规范化和移动区域。

  1. 文本范围在起始终结点处折叠为退化 (空) 范围。
  2. 如有必要,生成的文本范围在文档中向后移动到请求的文本单元边界的开头。
  3. 文本范围在文档中按请求的文本单位边界数向前或向后移动。
  4. 通过将结束终结点向前移动一个请求的文本单位边界,从退化状态扩展文本范围。
如果上述任何步骤失败,文本范围保持不变。 如果文本范围不能移动至请求的文本单位数,但可以移动较少数量的文本单位,则文本范围将按较小的文本单位数移动,并将 移动 设置为移动的文本单位数。

对于退化的文本范围, IUIAutomationTextRange::Move 只需按指定的文本单位数移动文本插入点。

移动文本范围时, IUIAutomationTextRange::Move 将忽略文本中任何嵌入对象的边界。

IUIAutomationTextRange::Move 同时遵循隐藏文本和可见文本。

如果基于文本的控件不支持 unit 参数指定的文本单位, 则 IUIAutomationTextRange::Move 将替换下一个更大的受支持文本单元。

文本单位的大小(从最小单位到最大)如下所示。

  • 字符
  • 格式
  • Word
  • 线
  • Paragraph
  • 页面
  • 文档

单位为 时的范围行为TextUnit::Format

TextUnit::Format 作为 单位 值定位文本范围的边界,以基于共享文本属性 (格式) 范围内的文本扩展或移动范围。 但是,使用格式文本单元不会跨嵌入对象的边界(如图像或超链接)移动或扩展文本范围。 有关详细信息,请参阅UI 自动化文本单位UI 自动化文本内容支持

要求

要求
最低受支持的客户端 Windows 7、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新、带 SP3 的 Windows XP 和适用于 Windows Vista 的平台更新 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2、Windows Server 2008 SP2 和 Platform Update for Windows Server 2008、Windows Server 2003 SP2 和 Platform Update for Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 uiautomationclient.h (包括 UIAutomation.h)

另请参阅

IUIAutomationTextRange

对文本内容的UI 自动化支持