ITextRangeProvider::Move 方法(uiautomationcore.h)

將文字範圍向前或向後移動指定的文字單位數目。

語法

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

參數

[in] unit

類型:TextUnit

文字單位的類型,例如字元、文字、段落等等。

[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 應同時遵守隱藏和可見的文字。

如果文字型控件不支援 單位 參數所指定的文字單位,提供者應該取代下一個較大的支持文字單位。

文字單位的大小,從最小單位到最大,如下所示。

  • 字元
  • 格式
  • 公文

單位TextUnit::Format範圍行為

TextUnit::Format 做為 單位, 值會定位文字範圍的界限,以根據範圍內的文字共用文字屬性(格式)來展開或移動範圍。 不過,使用格式文字單位不應該移動或展開內嵌物件界限之間的文字範圍,例如影像或超連結。 如需詳細資訊,請參閱 UI 自動化文字單位Text 和 TextRange 控制項模式

要求

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

另請參閱

概念

ITextProvider

ITextRangeProvider

參考

Text 和 TextRange 控制項模式

UI 自動化提供者概觀