Linux 拨号vps windows公众号手机端

谁能详细解释一下CMenu::ModifyMenu函数

lewis 8年前 (2017-06-09) 阅读数 7 #程序编程
文章标签 函数

CMenu::ModifyMenu函数是MFC(Microsoft Foundation Classes)中的一个成员函数,用于修改菜单项的属性和内容。
函数的原型如下:
BOOL ModifyMenu(
UINT nPosition,
UINT nFlags,
UINT_PTR nIDNewItem = 0,
LPCTSTR lpszNewItem = NULL,
BOOL bByPosition = TRUE
);
参数说明:

nPosition:指定要修改的菜单项的位置,可以是菜单项的标识符或者是菜单项在菜单中的位置索引。
如果bByPosition参数设置为TRUE,则nPosition表示菜单项在菜单中的位置索引,从0开始计数。
如果bByPosition参数设置为FALSE,则nPosition表示菜单项的标识符。
nFlags:指定要修改的菜单项的属性,可以是以下常量的组合:
MF_BITMAP:用于指定菜单项为位图类型。
MF_CHECKED:用于指定菜单项为选中状态。
MF_DISABLED:用于指定菜单项为禁用状态。
MF_GRAYED:用于指定菜单项为灰色状态。
MF_MENUBARBREAK:用于指定菜单项为一行的开始。
MF_MENUBREAK:用于指定菜单项为一列的开始。
MF_OWNERDRAW:用于指定菜单项需要由应用程序自己绘制。
MF_POPUP:用于指定菜单项为弹出式子菜单。
MF_SEPARATOR:用于指定菜单项为分隔线。
MF_STRING:用于指定菜单项为字符串类型。
nIDNewItem:指定菜单项的标识符。
lpszNewItem:指定菜单项的文本内容。
bByPosition:指定nPosition参数表示菜单项的位置索引还是标识符。设置为TRUE表示位置索引,设置为FALSE表示标
识符。

函数返回值:
1、如果函数调用成功,返回值为非零值,表示修改菜单项成功。
2、如果函数调用失败,返回值为零,表示修改菜单项失败。
该函数可以用于在运行时动态修改菜单项的属性和内容。可以通过修改菜单项的属性来改变菜单项的显示状态,如禁用菜单项、选中菜单项等。可以通过修改菜单项的内容来改变菜单项的文本内容,或者将菜单项转换为子菜单。
以下是一个使用CMenu::ModifyMenu函数的示例代码:

CMenumenu;
menu.LoadMenu(IDR_MENU1);//加载菜单资源
CMenu*pSubMenu=menu.GetSubMenu(0);//获取第一个子菜单
//修改子菜单的第二个菜单项
pSubMenu->ModifyMenu(1,MF_BYPOSITION|MF_CHECKED,ID_MENU_ITEM2,_T("CheckedItem"));
//修改子菜单的第三个菜单项
pSubMenu->ModifyMenu(ID_MENU_ITEM3,MF_BYCOMMAND|MF_STRING,ID_MENU_ITEM3,_T("NewItem"));
//修改子菜单的第四个菜单项
pSubMenu->ModifyMenu(3,MF_BYPOSITION|MF_POPUP,(UINT_PTR)pSubMenu,_T("Submenu"));
SetMenu(&menu);//设置菜单

以上示例中,首先加载菜单资源,然后获取第一个子菜单。通过调用ModifyMenu函数修改子菜单的不同菜单项,如将第二个菜单项设置为选中状态,修改第三个菜单项的文本内容,将第四个菜单项修改为子菜单,并设置为当前菜单。

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门