CMenu::ModifyMenu
更改现有菜单项。nPosition指定的该位置。
BOOL ModifyMenu(
UINT nPosition,
UINT nFlags,
UINT_PTR nIDNewItem = 0,
LPCTSTR lpszNewItem = NULL
);
BOOL ModifyMenu(
UINT nPosition,
UINT nFlags,
UINT_PTR nIDNewItem,
const CBitmap* pBmp
);
参数
nPosition
指定要更改的菜单项。 nFlags 参数可用于以下方式解释 nPosition :nFlags
nPosition的说明
MF_BYCOMMAND
指定参数为现有菜单项的命令ID。 如果 MF_BYCOMMAND 和 MF_BYPOSITION 未设置,这是默认值。
MF_BYPOSITION
指定参数为现有菜单项的位置。 第一项在位置0。
nFlags
指定 nPosition 如何解释并提供有关将进行的更改的信息对菜单项。 有关可以设置标志的列表,请参见 AppendMenu 成员函数。nIDNewItem
指定已修改的菜单项的命令ID;或者,如果 nFlags 设置为 MF_POPUP,菜单句柄(HMENU)弹出菜单。 nIDNewItem 参数将被忽略(不需要),如果 nFlags 设置为 MF_SEPARATOR。lpszNewItem
指定新菜单项的内容。 nFlags 参数可用于以下方式解释 lpszNewItem :nFlags
lpszNewItem的说明
MF_OWNERDRAW
包含应用程序可以使用维护其他数据与菜单项的一个由应用程序提供的32位值。 在处理 MF_MEASUREITEM 和 MF_DRAWITEM时,该32位值对应用程序本身可用。
MF_STRING
包含较长的指针传递一个Null终止的字符串或为 CString。
MF_SEPARATOR
lpszNewItem 参数将被忽略(不需要)。
pBmp
指向 CBitmap 将用作菜单项的对象。
返回值
非零,如果函数运行成功;否则为0。
备注
应用程序通过设置值来指定菜单项的新状态在 nFlags。 如果此功能替代一个弹出菜单与菜单项,它销毁旧弹出菜单和释放弹出菜单占用的内存。
当 nIDNewItem 指定弹出菜单时,它成为其插入的一部分的菜单。 如果销毁该菜单,还将在销毁插入的菜单。 应从 CMenu 对象分离一个插入的菜单避免冲突。
只要位于窗口更改的菜单(窗口是否显示),应用程序应调用 CWnd::DrawMenuBar。 若要更改现有菜单项属性,它是更快使用 CheckMenuItem 和 EnableMenuItem 成员函数。
示例
为 CMenu::InsertMenu参见示例。
要求
Header: afxwin.h