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作為單位值,會將文字範圍的界限定位為根據共用文字屬性展開或移動範圍, (格式) 範圍內文字。 不過,使用格式文字單位不應移動或展開內嵌物件界限的文字範圍,例如影像或超連結。 如需詳細資訊,請參閱 使用者介面自動化 文字單位文字和 TextRange 控件模式

規格需求

需求
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 uiautomationcore.h (包含 UIAutomation.h)

另請參閱

概念

ITextProvider

ITextRangeProvider

參考

文字和 TextRange 控制件模式

UI 自動化提供者概觀