ITextRange::MoveUntil 方法 (tom.h)

最多搜尋 Cset 所指定字元集中第一個字元的 [計算字元數]。 如果找到字元,範圍就會折疊至該點。 搜尋的開頭和方向也會由 Count 指定。

語法

HRESULT MoveUntil(
  VARIANT *Cset,
  long    Count,
  long    *pDelta
);

參數

Cset

類型: VARIANT*

比對中使用的字元集。 這可能是字元或字元集索引的明確字串。 如需詳細資訊,請參閱 字元比對集

Count

類型: long

要移動的字元數上限。 默認值為 tomForward,它會搜尋本文結尾。 如果 Count 小於零,則搜尋會從開始位置回溯開始。 如果 Count 大於零,搜尋會從結尾開始。

pDelta

類型: long*

插入點移動的字元數,如果 Count 大於零,則為相符專案加上 1,如果 Count 小於零則為 –1。 指標可以是 Null。

傳回值

類型: HRESULT

方法會傳回 HRESULT 值。 如果方法成功,則會傳回 S_OK。 如果方法失敗,它會傳回下列其中一個錯誤碼。 如需 COM 錯誤碼的詳細資訊,請參閱 COM 中的錯誤處理

傳回碼 Description
E_INVALIDARG
Cset 無效。
S_FALSE
因其他原因而失敗。

備註

如果未比對任何字元,則範圍不會變更。

ITextRange::MoveUntil 所描述的動作是邏輯而非幾何。 也就是說,動作是接近結尾或到故事的開頭。 視語言而定,移至本文結尾可能會向左移動或向右移動。

如需詳細資訊,請參閱 ITextRange 中的討論和 ITextRange::Move 的一節。

ITextRange::MoveStartUntilITextRange::MoveEndUntil 方法會分別移動 start 和 end,直到它找到 Cset 參數所指定集合中的第一個字符為止。

ITextRange::MoveUntil 方法類似於 ITextRange::MoveWhile,但有兩個差異。 首先, MoveUntil 會移動插入點, 直到 找到屬於 Cset 所指定字元集的第一個字元為止。 其次,在 MoveUntil 中,字元比對會計算為 pDelta 所傳回值中的其他字元。 這可讓您知道範圍一端或另一端的字元屬於 Cset ,即使插入點停留在其中一個範圍結尾。

例如,假設範圍 r 是插入點。 若要查看 r 的字元 (,由 r.GetChar () ) 在 Cset 中指定,請呼叫

r.MoveUntil(Cset, 1)

如果字元在 Cset 中,則傳回值為 1,且插入點不會移動。 同樣地,若要查看 r 前面的字元是否在 Cset 中,請呼叫

r.MoveUntil(Cset, -1)

如果字元在 Cset 中,則傳回值為 –1。

下列 Microsoft Visual Basic for Applications (VBA) 子程式會列印範圍 r 所識別之本文中的所有數位。

Sub PrintNumbers (r As ITextRange)
   r.SetRange 0, 0    // r = insertion point at start of story
   While r.MoveUntil(C1_DIGIT)  // Move r to 1st digit in next number
      r.MoveEndWhile C1_DIGIT  // Select number (span of digits)
      Print r    // Print it
   Wend
End Sub

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 tom.h
Dll Msftedit.dll

另請參閱

概念

GetChar

ITextRange

移動

MoveEndUntil

MoveStartUntil

MoveWhile

參考

文字物件模型