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::CreateContextITfEditSession::D oEditSession 获取的编辑上下文。

[in] dwFlags

指定用于更正内容的可选行为。 如果设置为 TF_ST_CORRECTION 的值,则操作是对现有内容的更正,而不是创建新内容,并保留原始文本属性。

[in] pchText

指向缓冲区的指针,该缓冲区包含要替换范围内容的文本。

[in] cch

包含 pchText 中的字符数。

返回值

此方法可以返回其中一个值。

说明
S_OK
方法成功。
E_FAIL
发生了未指定的错误。
E_INVALIDARG
一个或多个参数无效。
TF_E_COMPOSITION_REJECTED
上下文所有者拒绝了默认组合。
TF_E_NOLOCK
ec 参数的值是无效的 Cookie,或者调用方没有读/写锁。
TF_E_RANGE_NOT_COVERED
范围不在调用方的活动组合范围内。

注解

当范围涵盖多个区域时,请分别在每个区域上调用 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

ITfDocumentMgr::CreateContext

ITfEditSession::D oEditSession

ITfRange

ITfRange::GetText

ITfRange::InsertEmbedded

其他框架常量

文本存储