[Windows]MFC单文档实现菜单切换

我们在加载单文档主界面时找到如下代码,当然可以在解决方案中寻找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

你可能感兴趣的:(Windows,Programming)