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) ) 。

如果 hbmpNULL,则忽略此参数。

[in] pch

指向 WCHAR 缓冲区的指针,该缓冲区包含要为菜单项显示的文本。 文本的长度由 cch 指定。

[in] cch

指定 pch 中菜单项文本的长度(以 WCHAR 为单位)。

ppMenu

[in, out]指向接收子菜单对象的 ITfMenu 接口指针的指针。 此参数不使用,如果 dwFlags 不包含TF_LBMENUF_SUBMENU,则必须NULL

如果成功创建子菜单项,此参数将接收 一个 ITfMenu 对象,调用方使用该对象向子菜单添加项。

如果 dwFlags 包含 TF_LBMENUF_SUBMENU,则必须在调用此方法之前将此值初始化为 NULL ,因为在大多数情况下,这是封送调用。 不初始化此变量会导致封送处理程序尝试访问随机内存。

返回值

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

Value 说明
S_OK
方法成功。
E_FAIL
发生了未指定的错误。
E_OUTOFMEMORY
发生内存分配失败。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 ctfutb.h
DLL Msctf.dll
可再发行组件 Windows 2000 专业版上的 TSF 1.0

另请参阅

ITfMenu

TF_LBMENUF_* 常量