gpt4 book ai didi

c++ - Windows-10 上的 CMDIChildWnd 外观和感觉

转载 作者:太空宇宙 更新时间:2023-11-04 13:26:11 25 4
gpt4 key购买 nike

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

我尝试将 CMDIChildWnd 更改为 CMDIChildWndEx,但这对窗口的外观和感觉没有任何影响(客户端矩形周围的另一种边框样式除外)。我不想将所有 subview 更改为停靠 Pane ,因为它会极大地改变用户体验。我只想让 subview 具有原生的外观和感觉。

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

最佳答案

默认情况下不会这样做。 MDI 子窗口的默认实现只是以旧样式绘制窗口。

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

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

所有组件都在那里。也许强制始终调用 m_Impl.OnNcPaint 就足够了。所以创建自己的 MDI 子窗口类并强制 MDI 系统使用它。 (请参阅您的文档模板类)。

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

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

关于c++ - Windows-10 上的 CMDIChildWnd 外观和感觉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33297775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com