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 |
---|---|
|
Cset 無效。 |
|
因其他原因而失敗。 |
備註
如果未比對任何字元,則範圍不會變更。
ITextRange::MoveUntil 所描述的動作是邏輯而非幾何。 也就是說,動作是接近結尾或到故事的開頭。 視語言而定,移至本文結尾可能會向左移動或向右移動。
如需詳細資訊,請參閱 ITextRange 中的討論和 ITextRange::Move 的一節。
ITextRange::MoveStartUntil 和 ITextRange::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 |
另請參閱
概念
參考