修改MFC中菜单显示的文字

当需要在程序中动态修改菜单中显示的文字时,比如有的程序界面提供中英文显示切换的功能,可以通过以下方式进行。

CMenu *cMenu = new CMenu();
cMenu->LoadMenuA(IDR_MENU1);//加载菜单,IDR_MENU1是整个菜单资源的ID		
CMenu *subMenu = cMenu->GetSubMenu(0);//获取菜单中的第一个菜单
/*MF_BYPOSITION (by position )表示修改第0个位置的菜单项*/
subMenu->ModifyMenuA(0, MF_BYPOSITION, ID_CONFIG, "Configuration");//将第一个菜单下的第一个菜单项的文字改为“Configuration”

 对程序的解释详见注释。

需要说明的是,第5行中,ModifyMenuA()的第3个参数ID_CONFIG是被修改的菜单项的新的ID值,该值一般要与菜单项原来的ID相同,以便使点击该菜单项时调用同一个消息响应函数。更多解释见下图。

修改MFC中菜单显示的文字_第1张图片

 

你可能感兴趣的:(C/C++)