如何防止在运行时修改的CMFCMenuBar菜单重置?

如何防止在运行时修改的CMFCMenuBar菜单重置?,mfc,Mfc,我有一个MDI mfc应用程序,在其中我根据运行时的程序条件修改默认菜单。(我添加菜单,有时删除菜单。) 问题是,如果我试图关闭一个子窗口,并且出现询问是否要保存更改的消息框,而不管我是否选择保存,应用程序的菜单栏将返回到默认状态(在资源文件中创建)我被迫关闭整个应用程序,因为相关的菜单项不再可用 是否有任何CMDIFrameWndEx或CMDIChildWndEx或CMFCMenuBar成员函数可以重写以防止发生这种情况。或者是否有其他相关的解决方案或方法?修改默认菜单的代码在哪里?打开消息框

我有一个MDI mfc应用程序,在其中我根据运行时的程序条件修改默认菜单。(我添加菜单,有时删除菜单。)

问题是,如果我试图关闭一个子窗口,并且出现询问是否要保存更改的消息框,而不管我是否选择保存,应用程序的菜单栏将返回到默认状态(在资源文件中创建)我被迫关闭整个应用程序,因为相关的菜单项不再可用


是否有任何CMDIFrameWndEx或CMDIChildWndEx或CMFCMenuBar成员函数可以重写以防止发生这种情况。或者是否有其他相关的解决方案或方法?

修改默认菜单的代码在哪里?打开消息框的代码在哪里?你想让我们猜猜看吗?MFC不是设计成这样工作的,它因不太灵活而臭名昭著,但是它的来源对你来说是可用的。不确定是否需要添加或删除菜单项。请记住,MFC资源文件中有两个菜单,一个用于“大型机”,另一个用于文档类型,前者在没有打开文档时显示。还可以考虑添加一些代码来启用/禁用菜单项(OnUpDATEUI),并检查是否有可能隐藏菜单项。@ Constantine Georgiou,我在运行时更改了主机和文档菜单。这是在查询文档关闭时返回的资源文件中的默认值。在我的系统上哪里可以找到源。@Constantine Georgiou,你是说我可以隐藏菜单项?。如果您不是指菜单项变灰或禁用,那么这可能是一个更好的解决方案。如何隐藏菜单项?一定要向我解释。