iTfRange::SetText 方法 (msctf.h)
ITfRange::SetText 方法替换文本范围所涵盖的内容。 对于空的范围对象, 方法导致插入到区域的位置。 如果新内容为空字符串 (cch = 0) ,则 方法将删除该范围内的现有内容。
语法
HRESULT SetText(
[in] TfEditCookie ec,
[in] DWORD dwFlags,
[in] const WCHAR *pchText,
[in] LONG cch
);
parameters
[in] ec
标识从 ITfDocumentMgr::CreateContext 或 ITfEditSession::D oEditSession 获取的编辑上下文。
[in] dwFlags
指定用于更正内容的可选行为。 如果设置为 TF_ST_CORRECTION 的值,则操作是对现有内容的更正,而不是创建新内容,并保留原始文本属性。
[in] pchText
指向缓冲区的指针,该缓冲区包含要替换范围内容的文本。
[in] cch
包含 pchText 中的字符数。
返回值
此方法可以返回其中一个值。
值 | 说明 |
---|---|
|
方法成功。 |
|
发生了未指定的错误。 |
|
一个或多个参数无效。 |
|
上下文所有者拒绝了默认组合。 |
|
ec 参数的值是无效的 Cookie,或者调用方没有读/写锁。 |
|
范围不在调用方的活动组合范围内。 |
注解
当范围涵盖多个区域时,请分别在每个区域上调用 ITfRange::SetText 。 否则, 方法可能会失败。
默认情况下,文本服务将启动和结束涵盖该范围的临时合成,以确保上下文所有者一致地识别编辑后的文本的合成。 如果组合所有者拒绝默认组合,则该方法返回TF_E_COMPOSITION_REJECTED。 仅当调用方尚未启动默认组合时,才会创建默认组合。 如果调用方具有活动组合,则调用将失败。
TF_CHAR_EMBEDDED对象占位符字符可能不会传递到此方法中。 应改用 ITfRange::InsertEmbedded。
对于插入文本, ITFInsertAtSelection:InsertTextAtSelection 方法不需要分配选择范围,并避免了区域与所选内容匹配的要求。
要求
最低受支持的客户端 | Windows 2000 专业版 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows 2000 Server [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | msctf.h |
DLL | Msctf.dll |
可再发行组件 | Windows 2000 专业版上的 TSF 1.0 |
另请参阅
ITFInsertAtSelection:InsertTextAtSelection