MFC中主窗口和子窗口的菜单问题,如何统一显示MDI主窗体菜单?

清泛原创
在   MDI   应用程序中,每一个子窗体的菜单都显示在   MDI   窗体上,而不是在子窗体本身。当子窗体有焦点时,该子窗体的菜单(如果有的话)就代替菜单栏上的   MDI   窗体的菜单。如果没有可见的子窗体,或者如果带有焦点的子窗体没有菜单,则显示   MDI   窗体的菜单。现在想要在打开子窗口时,显示的菜单和不打开子窗口的时候一样,怎么办啊?

只需要在注册应用程序模板的时候指定资源ID为主窗口菜单即可:
CxxxApp::InitInstance()中相应的地方改为如下代码(改动部分红色标示)
        // 注册应用程序的文档模板。文档模板
        // 将用作文档、框架窗口和视图之间的连接
        CMultiDocTemplate* pDocTemplate;
        pDocTemplate = new CMultiDocTemplate(IDR_MAINFRAME,
                RUNTIME_CLASS(CMFCApplication1Doc),
                RUNTIME_CLASS(CChildFrame), // 自定义 MDI 子框架
                RUNTIME_CLASS(CMFCApplication1View));

运行效果:
 

MDI 菜单

分享到:
评论加载中,请稍后...
创APP如搭积木 - 创意无限,梦想即时!
回到顶部