AppendMenu

【勇芳软件工作室】汉化HomePreviousNext

AppendMenu功能将一个新项目附加到指定的菜单栏,下拉菜单,子菜单或快捷菜单的末尾。您可以使用此函数指定菜单项的内容,外观和行为。

InsertMenuItem功能已被InsertMenuItem功能取代。但是,如果您不需要InsertMenuItem的任何扩展功能,您仍然可以使用AppendMenu.

BOOL AppendMenu(

HMENU 【HMENU】,//处理要更改的菜单
UINT 【uFlags】,//菜单项标志
UINT 【uIDNewItem】,//菜单项标识符或下拉菜单或子菜单的句柄
LPCTSTR 【lpNewItem】//菜单项内容
); 

参数

【HMENU】

标识要更改的菜单栏,下拉菜单,子菜单或快捷菜单。

【uFlags】

指定用于控制新菜单项的外观和行为的标志。此参数可以是以下备注部分中列出的值的组合。

【uIDNewItem】

指定新菜单项的标识符,或者如果【uFlags】参数设置为MF_POPUP,则下拉菜单或子菜单的句柄。

【lpNewItem】

指定新菜单项的内容。【lpNewItem】的解释取决于【uFlags】参数是否包含MF_BITMAP,MF_OWNERDRAW或MF_STRING标志,如下所示:

描述
MF_BITMAP包含一个位图句柄。
MF_OWNERDRAW包含应用程序提供的32位值,可用于维护与菜单项相关的附加数据。该值位于创建菜单或其外观更新时发送的WM_MEASURE或WM_DRAWITEM消息的【LPARAM】参数指向的结构的的ItemData成员中。
MF_STRING包含指向空终止字符串的指针。

返回值

如果函数成功,返回值不为零。

如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.

备注

无论菜单是否在显示的窗口中,应用程序必须在菜单更改时调用DrawMenuBar功能。

可在【uFlags】参数中设置以下标志:

描述
MF_BITMAP使用位图作为菜单项。【lpNewItem】参数包含位图的句柄。
MF_CHECKED在菜单项旁边放一个复选标记。如果应用程序提供复选标记位图(参见SetMenuItemBitmaps),该标志将显示菜单项旁边的复选标记位图。
MF_DISABLED禁用菜单项,因此无法选择,但标志不会灰色。
MF_ENABLED启用菜单项,以便可以选择它,并将其从灰色状态恢复。
MF_GRAYED禁用菜单项并将其灰化,因此无法选择。
MF_MENUBARBREAK功能与菜单栏的MF_MENUBREAK标志相同。对于下拉菜单,子菜单或快捷菜单,新列将与旧列与垂直线分开。
MF_MENUBREAK将项目放置在新行(对于菜单栏)或新列(对于下拉菜单,子菜单或快捷菜单)而不分隔列。
MF_OWNERDRAW指定该项目是所有者绘制的项目。在第一次显示菜单之前,拥有菜单的窗口会收到WM_MEASUREITEM消息以检索菜单项的宽度和高度。每当必须更新菜单项的外观时,WM_DRAWITEM消息将被发送到所有者窗口的窗口过程。
MF_POPUP指定菜单项打开下拉菜单或子菜单。【uIDNewItem】参数指定下拉菜单或子菜单的句柄。此标志用于将菜单名称添加到菜单栏,或将菜单项添加到下拉菜单,子菜单或快捷菜单中的子菜单。
MF_SEPARATOR画一条水平分界线。此标志仅在下拉菜单,子菜单或快捷菜单中使用。该行不能为灰色,禁用或突出显示。【lpNewItem】【uIDNewItem】参数将被忽略。
MF_STRING指定菜单项是文本字符串; 【lpNewItem】参数指向字符串。
MF_UNCHECKED不在项目旁边放置复选标记(默认)。如果应用程序提供复选标记位图(参见SetMenuItemBitmaps),此标志将显示菜单项旁边的未选中的位图。

以下组标志不能一起使用:

MF_DISABLED,MF_ENABLED和MF_GRAYED

* MF_BITMAP,MF_STRING和MF_OWNERDRAW

* MF_MENUBARBREAK和MF_MENUBREAK

* MF_CHECKED和MF_UNCHECKED

也可以看看

CreateMenu, DeleteMenu, DestroyMenu, DrawMenuBar, InsertMenu, InsertMenuItem, ModifyMenu, RemoveMenu, SetMenuItemBitmaps