ITextRangeProvider::Move 方法 (uiautomationcore.h)

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

语法

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

参数

unit

[in] count

类型: int

要移动的文本单位数。 正值将文本范围向前移动。

负值将文本范围向后移动。 零无效。

[out, retval] pRetVal

类型: int*

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

返回值

类型: HRESULT

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

注解

ITextRangeProvider::Move 应仅移动文本范围以跨越文本的不同部分,不应以任何方式更改文本。

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

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

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

移动文本范围时,提供程序应忽略文本中任何嵌入对象的边界。

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

如果基于文本的控件不支持 unit 参数指定的 文本单位,则提供程序应替换下一个更大的受支持文本单元。

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

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

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

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

要求

要求
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 uiautomationcore.h (包括 UIAutomation.h)

请参阅

概念性

ITextProvider

ITextRangeProvider

引用

Text 和 TextRange 控件模式

UI 自动化提供程序概述