在 MDI 应用程序中,每一个子窗体的菜单都显示在 MDI 窗体上,而不是在子窗体本身。当子窗体有焦点时,该子窗体的菜单(如果有的话)就代替菜单栏上的 MDI 窗体的菜单。如果没有可见的子窗体,或者如果带有焦点的子窗体没有菜单,则显示 MDI 窗体的菜单。现在想要在打开子窗口时,显示的菜单和不打开子窗口的时候一样,怎么办啊?
只需要在注册应用程序模板的时候指定资源ID为主窗口菜单即可:
CxxxApp::InitInstance()中相应的地方改为如下代码(改动部分红色标示)
// 注册应用程序的文档模板。文档模板
// 将用作文档、框架窗口和视图之间的连接
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_MAINFRAME,
RUNTIME_CLASS(CMFCApplication1Doc),
RUNTIME_CLASS(CChildFrame), // 自定义 MDI 子框架
RUNTIME_CLASS(CMFCApplication1View));
运行效果: