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 中的错误处理。
返回代码 | 说明 |
---|---|
|
Cset 无效。 |
|
由于其他某种原因而失败。 |
注解
如果未匹配任何字符,则范围保持不变。
ITextRange::MoveUntil 描述的运动是逻辑的,而不是几何的。 也就是说,动作是接近故事的结尾或开始。 根据语言,移动到故事末尾可能是向左移动或向右移动。
有关详细信息,请参阅 ITextRange 中的讨论和 ITextRange::Move 的“备注”部分。
ITextRange::MoveStartUntil 和 ITextRange::MoveEndUntil 方法分别移动开始和结束,直到找到 Cset 参数指定的集中的第一个字符。
ITextRange::MoveUntil 方法类似于 ITextRange::MoveWhile,但有两个差异。 首先, MoveUntil 移动插入点, 直到 找到属于 Cset 指定的字符集的第一个字符。 其次,在 MoveUntil 中,匹配的字符计数为 pDelta 中返回的值中的附加字符。 这样,便可以知道范围一端或另一端的字符属于 Cset ,即使插入点停留在范围末尾之一。
例如,假设范围 r 是一个插入点。 若要查看 r.GetChar () ) 给定的 r (字符是否在 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 |
请参阅
概念性
引用