转:
http://blog.csdn.net/li_canhui/article/details/6636101
当需要在程序中动态修改菜单中显示的文字时,比如有的程序界面提供中英文显示切换的功能,可以通过以下方式进行。
- 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相同,以便使点击该菜单项时调用同一个消息响应函数。更多解释见下图。