ImmSetCompositionStringA 函数 (imm.h)
设置组合字符串和读取字符串的字符、属性和子句。
语法
BOOL ImmSetCompositionStringA(
HIMC unnamedParam1,
[in] DWORD dwIndex,
[in, optional] LPVOID lpComp,
[in] DWORD dwCompLen,
[in, optional] LPVOID lpRead,
[in] DWORD dwReadLen
);
parameters
unnamedParam1
[in] dwIndex
要设置的信息类型。 此参数可以具有以下值之一。
值 | 含义 |
---|---|
|
设置组合字符串和/或读取字符串。 至少一个 lpComp 和 lpRead 参数必须指示有效的字符串。 如果任一字符串太长,则 IME 将截断它。 |
|
设置组合字符串和/或读取字符串的属性。 至少一个 lpComp 和 lpRead 参数必须指示有效的属性数组。 |
|
设置组合字符串和/或读取字符串的子句信息。 至少一个 lpComp 和 lpRead 参数必须指向有效的子句信息数组。 |
|
Windows Me/98、Windows 2000、Windows XP: 要求 IME 使用指定的 RECONVERTSTRING 结构重新转换字符串。 |
|
Windows Me/98、Windows 2000、Windows XP: 要求 IME 调整 RECONVERTSTRING 结构。 然后,应用程序可以使用SCS_SETRECONVERTSTRING将调整的结构传递到此函数中。 IME 不会生成任何 WM_IME_COMPOSITION 消息。 |
[in, optional] lpComp
指向缓冲区的指针,该缓冲区包含要为组合字符串设置的信息(由 dwIndex 值指定)。
[in] dwCompLen
即使指定了SCS_SETSTR并且缓冲区包含 Unicode 字符串,合成字符串的信息缓冲区的大小(以字节为单位)。
[in, optional] lpRead
指向缓冲区的指针,其中包含要为读取字符串设置的信息,由 dwIndex 的值指定。 应用程序可以将此参数设置为 NULL。
[in] dwReadLen
读取字符串的信息缓冲区的大小(以字节为单位),即使指定了SCS_SETSTR并且缓冲区包含 Unicode 字符串也是如此。
返回值
如果成功,则返回非零值,否则返回 0。
注解
应用程序可以设置 lpComp 和/或 lpRead。 如果应用程序未为 lpComp 指定值,则必须将此参数设置为 NULL 并将 dwCompLen 设置为 0。
当应用程序更改属性时,子句中的所有字符都必须具有相同的属性。 转换后的字符必须具有属性ATTR_CONVERTED或ATTR_TARGET_CONVERTED。 未转换的字符必须具有属性ATTR_INPUT或ATTR_TARGET_NOTCONVERTED。
当应用程序更改子句信息时,它只能更改目标子句,一次只影响一个边界。 target 子句具有 ATTR_TARGET_CONVERTED 或 ATTR_TARGET_NOTCONVERTED 特性。
有关属性 (ATTR_* 值) 的其他信息,请参阅 合成字符串。
当 IME 完成更改时,它会向应用程序发送 WM_IME_COMPOSITION 消息,以通知其更改。
Windows Me/98、Windows 2000、Windows XP: SCS_*CONVERTSTRING 值用于重新转换。 它们只能用于具有 SCS_CAP_SETRECONVERTSTRING 属性的 IME。 应用程序使用这些值,如下所示:
- 使用 SCS_QUERYRECONVERTSTRING 调用 ImmSetCompositionString ,以便 IME 调整重新转换的 RECONVERTSTRING 结构。
- 使用 SCS_SETRECONVERTSTRING 调用 ImmSetCompositionString ,以便 IME 生成新的合成字符串。 在此之后, lpComp 和 lpRead 指示包含更新的合成和读取字符串的 RECONVERTSTRING 结构。 仅当所选 IME 已设置SCS_CAP_MAKEREAD时才使用 lpRead 的值。
注意
imm.h 标头将 ImmSetCompositionString 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
最低受支持的客户端 | Windows XP [仅限桌面应用],已安装东亚语言支持。 |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | imm.h (包括 Immdev.h、Windows.h) |
Library | Imm32.lib |
DLL | Imm32.dll |