ITfMenu::AddMenuItem 方法 (ctfutb.h)
将一个项添加到菜单,语言栏将为按钮显示该菜单。
语法
HRESULT AddMenuItem(
[in] UINT uId,
[in] DWORD dwFlags,
[in] HBITMAP hbmp,
[in] HBITMAP hbmpMask,
[in] const WCHAR *pch,
[in] ULONG cch,
ITfMenu **ppMenu
);
参数
[in] uId
包含菜单项标识符。
[in] dwFlags
包含指定菜单项类型和状态的一个或多个 TF_LBMENUF_* 值的零或组合。
[in] hbmp
包含为菜单项绘制的位图的句柄。 如果为 NULL,则不显示菜单项的位图。
[in] hbmpMask
包含掩码位图的句柄。 这是一个单色位图,充当 hbmp 的掩码。 此位图中的每个黑色像素将导致以 hbmp 为单位的相应像素以其正常颜色显示。 此位图中的每个白色像素将导致相应的像素( 以 hbmp 为单位)以与其正常颜色相反的方式显示。
若要在没有任何颜色转换的情况下显示位图,请创建与 hbmp 大小相同的单色位图,并将每个像素设置为黑色 (RGB (0, 0, 0) ) 。
如果 hbmp 为 NULL,则忽略此参数。
[in] pch
指向 WCHAR 缓冲区的指针,该缓冲区包含要为菜单项显示的文本。 文本的长度由 cch 指定。
[in] cch
指定 pch 中菜单项文本的长度(以 WCHAR 为单位)。
ppMenu
[in, out]指向接收子菜单对象的 ITfMenu 接口指针的指针。 此参数不使用,如果 dwFlags 不包含TF_LBMENUF_SUBMENU,则必须为NULL。
如果成功创建子菜单项,此参数将接收 一个 ITfMenu 对象,调用方使用该对象向子菜单添加项。
如果 dwFlags 包含 TF_LBMENUF_SUBMENU,则必须在调用此方法之前将此值初始化为 NULL ,因为在大多数情况下,这是封送调用。 不初始化此变量会导致封送处理程序尝试访问随机内存。
返回值
此方法可以返回其中一个值。
Value | 说明 |
---|---|
|
方法成功。 |
|
发生了未指定的错误。 |
|
发生内存分配失败。 |
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | ctfutb.h |
DLL | Msctf.dll |
可再发行组件 | Windows 2000 专业版上的 TSF 1.0 |