CMDIChildWnd在Windows-10上的外观和感觉

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CMDIChildWnd在Windows-10上的外观和感觉相关的知识,希望对你有一定的参考价值。

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

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

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

答案

默认情况下,这没有完成。 MDI子窗口的默认实现只是以旧样式绘制窗口。

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

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

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

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

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

以上是关于CMDIChildWnd在Windows-10上的外观和感觉的主要内容,如果未能解决你的问题,请参考以下文章

Windows 10上的IE 11 VS 10上的Windows 11

在 Windows 10 上的 WSL2 上使用 JDK 的正确方法是啥?

如何让代码在 Windows 10 上的 GPU 上运行?

异常退出:Windows 10 上的 eaccess

Windows 10 上的 WinRTXAMLToolkit 树视图崩溃

在 Windows10 上的 Python 3.10 中安装 scipy 时出错