繁体   English   中英

Windows-10上的CMDIChildWnd外观

[英]CMDIChildWnd look & feel on Windows-10

我有一个MDI应用程序。 经过多年的发展。 在Windows-7上,一切看起来都是本地的。 当我在Windows-10上启动该应用程序时,普通对话框将具有Windows-10的外观。 但是所有子视图仍然具有Windows-7外观。

我试图将CMDIChildWnd更改为CMDIChildWndEx,但对窗口外观没有任何影响(除了客户端矩形周围的另一种边框样式)。 我不想将所有子视图都更改为停靠窗格,因为它将极大地改变用户体验。 我只想让子视图具有本地外观。

这有可能吗? 我可以轻松迁移到docker窗口并将其配置为与普通窗口一样的行为吗(根本没有停靠功能,最小/最大/还原按钮)?

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

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

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

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

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

PS:我只是在BCG实现中对其进行了重新检查,并且有可能以其他样式显示MDI子窗口。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM