1 新建SDI
2 在视图菜单下面添加菜单-英文,ID为ID_ENGLISH
3 用文本打开项目下的资源文件
4 在对应的中文菜单下面添加下面的代码
IDR_MAINFRAME_ENGLISH MENU PRELOAD DISCARDABLEBEGINPOPUP "File(&F)"BEGINMENUITEM "New(&N)\tCtrl+N", ID_FILE_NEWMENUITEM "Open(&O)...\tCtrl+O", ID_FILE_OPENMENUITEM "Save(&S)\tCtrl+S", ID_FILE_SAVEMENUITEM "Save as(&A)...", ID_FILE_SAVE_ASMENUITEM SEPARATORMENUITEM "Print(&P)...\tCtrl+P", ID_FILE_PRINTMENUITEM "Print Preview(&V)", ID_FILE_PRINT_PREVIEWMENUITEM "Print Setting(&R)...", ID_FILE_PRINT_SETUPMENUITEM SEPARATORMENUITEM "Recent Files",ID_FILE_MRU_FILE1, GRAYEDMENUITEM SEPARATORMENUITEM "Exit(&X)",ID_APP_EXITENDPOPUP "Edit(&E)"BEGINMENUITEM "Undo(&U)\tCtrl+Z", ID_EDIT_UNDOMENUITEM SEPARATORMENUITEM "Cut(&T)\tCtrl+X", ID_EDIT_CUTMENUITEM "Copy(&C)\tCtrl+C", ID_EDIT_COPYMENUITEM "Paste(&P)\tCtrl+V", ID_EDIT_PASTEENDPOPUP "View(&V)"BEGINMENUITEM "ToolBar(&T)", ID_VIEW_TOOLBARMENUITEM "StatusBar(&S)",ID_VIEW_STATUS_BARMENUITEM "Chinese", ID_ENGLISHENDPOPUP "Help(&H)"BEGINMENUITEM "About Test(&A)...",ID_APP_ABOUTENDEND
5 给CMainFrame添加成员变量
enum Enum{e,c}m_current;CMenu m_englistmenu;CMenu m_chinesemenu;
6 在CMainFrame的构造函数中添加
m_current=c;
7 在CMainFrame的OnCreate里面添加
m_englistmenu.LoadMenu("IDR_MAINFRAME_ENGLISH");HMENU m_hMenu=::GetMenu(this->m_hWnd); // 保存中文菜单m_chinesemenu.Attach(m_hMenu);
8 实现英文菜单命令消息
void CMainFrame::OnEnglish(){// TODO: 在此添加命令处理程序代码if(m_current==e){SetMenu(&m_chinesemenu);m_current=c;}else{SetMenu(&m_englistmenu);m_current=e;}}
如果觉得《c++ mfc实现中英文菜单的动态切换》对你有帮助,请点赞、收藏,并留下你的观点哦!