CMDIChildWnd look&感觉在Windows-10上

时间:2015-10-23 08:19:05

标签: c++ mfc windows-10 mfc-feature-pack

我有一个MDI应用程序。它已经发展多年。在Windows-7上,一切看起来都很原生。当我在Windows-10上启动应用程序时,正常的对话框将具有windows-10外观和放大器。感觉。但所有儿童观点仍然具有Windows-7外观和感觉。

我尝试从CMDIChildWnd更改为CMDIChildWndEx,但它对窗口外观没有任何影响。感觉(除了客户端rect周围的另一种边框样式)。我不想将所有子视图更改为停靠窗格,因为它会改变用户体验。我只想拥有原生外观和感受孩子的观点。

这甚至可能吗?我可以轻松迁移到docker窗口并将它们配置为像普通窗口一样(根本没有对接功能,最小/最大/恢复按钮)?

1 个答案:

答案 0 :(得分:0)

默认情况下,此操作尚未完成。 MDI子窗口的默认实现只是以旧样式绘制窗口。

在查看MFC Next的源代码时,应该可以通过OnNcPaint实现它。

CMDIChildWndEx已经实现了OnNcPaint。当您在CMFCVisualManager :: GetInstance() - > IsOwnerDrawCaption()上使用返回TRUE的样式时,可视化管理器已经绘制了标题和框架。

所有组件都在那里。也许强制m_Impl.OnNcPaint总是被调用就足够了。因此,创建自己的MDI子窗口类并强制MDI系统使用它。 (请参阅您的doc模板类。)

如果这还不够,您可以调用可视化工具的所有组件来自行绘制框架。

PS:我刚刚在BCG实现中重新检查了它,我可以用不同的风格显示MDI子窗口。