是否可以更改MFC MDI应用程序中主顶级菜单的位置?

是否可以更改MFC MDI应用程序中主顶级菜单的位置?,mfc,menu,mdi,menubar,Mfc,Menu,Mdi,Menubar,我有一个带有自定义框架的应用程序,即标题/标题栏、边框。我通过删除WS_标题样式并覆盖OnNcCalcSize为标题保留一个自定义大小的区域(应用程序在OnNcPaint中绘制)来定制框架 一个副作用是菜单栏不再显示,这是正常的,因为我想自定义主菜单的外观和位置。不幸的是,我不知道怎么做。我希望文件菜单比标准菜单栏离左边缘更远 一个可接受的替代方案是完全删除菜单,并使用onchittest、OnNcPaint和OnNcMouseMove管理顶层菜单的手动编码替换。我从未见过修改标准菜单外观的方法

我有一个带有自定义框架的应用程序,即标题/标题栏、边框。我通过删除WS_标题样式并覆盖OnNcCalcSize为标题保留一个自定义大小的区域(应用程序在OnNcPaint中绘制)来定制框架

一个副作用是菜单栏不再显示,这是正常的,因为我想自定义主菜单的外观和位置。不幸的是,我不知道怎么做。我希望文件菜单比标准菜单栏离左边缘更远


一个可接受的替代方案是完全删除菜单,并使用onchittest、OnNcPaint和OnNcMouseMove管理顶层菜单的手动编码替换。

我从未见过修改标准菜单外观的方法。您可以删除它,从InitInstance中删除创建代码,然后编写替换代码。不过,我不会在OnNcXXX中这样做,而是创建一个新的自定义控件,将其放置在顶部。或者,您可以查看MFC下一主题菜单并编写自定义UI呈现程序。它可能足以覆盖左侧的一些功能并设置菜单的对齐方式。

这是一个MFC MDI应用程序-初始化实例不是创建菜单的地方。我试着摆脱菜单并取得了成功,但MFC框架似乎暂时把它放回去了-我认为MDI模型让子窗口修改菜单,但这样做的代码似乎隐藏在框架的某个地方,或者我只是无法找到它在应用程序代码中的确切位置,但我怀疑它发生在MFC框架代码中。如果我知道在哪里,我也许可以超越methodss并控制。。。我想

编写自定义控件与处理OnNcMouseMove和OnNcLeftButtonDown(例如)的原因是什么。?我不希望在任何其他应用程序中需要这些功能——一个新的应用程序可能是用C编写的,所以我希望实现起来容易,而不是代码重用