我们在加载单文档主界面时找到如下代码,当然可以在解决方案中寻找IDR_MAINFRAME,以确定其位置
// 注册应用程序的文档模板。文档模板
// 将用作文档、框架窗口和视图之间的连接
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MENU_LOGIN,
RUNTIME_CLASS(CNotesRecDoc),
RUNTIME_CLASS(CMainFrame), // 主 SDI 框架窗口
RUNTIME_CLASS(CNotesRecView));
if (!pDocTemplate)
return FALSE;
AddDocTemplate(pDocTemplate);
其中IDR_MENU_LOGIN在初始化时为IDR_MAINFRAME,此段代码一般在所在解决方名称的cpp中,即Application.cpp
这是我们的第一个进入的菜单
当实现菜单切换时我们在资源视图中创建一个新的菜单,修改其ID,在初始菜单的某个菜单项中添加事件响应函数
添加如下代码:
//去掉系统的菜单
SetMenu(NULL);
CMenu menu;
//加载功能主菜单
menu.LoadMenu(IDR_MAINFRAME);
AfxGetMainWnd()->SetMenu(&menu);
AfxGetMainWnd()->DrawMenuBar();
menu.Detach();
其中IDR_MAINFRAME是需要切换的ID号,这样就实现了菜单的切换
工程代码:https://github.com/SalamanderJY/MenuSwitch