gpt4 book ai didi

c++ - DLL 中显示的对话框在 Qt Creator 项目中具有 Win98/Classic 样式控件,但在 Visual Studio 中主题正确

转载 作者:太空宇宙 更新时间:2023-11-04 12:01:36 27 4
gpt4 key购买 nike

这很奇怪 - 我在我的项目中链接到一个非 Qt DLL,而那个 DLL 显示了一个对话框。

当我使用 Qt Creator+MinGW 编译我的项目时,对话框没有主题 - 它有 Win98/Classic 风格的矩形控件。

enter image description here

当我使用 Qt Addin 在 Visual Studio 2010 中导入同一个项目并编译并运行它时,没有对项目进行任何更改,DLL 中显示的对话框具有正常的 Win7 主题外观(我在 Win7 上) .

enter image description here

这只会影响 DLL 显示的对话框 - EXE 本身显示的所有对话框都是正确主题的。

我链接到的 Qt 版本是 4.8.1,同时适用于 Qt Creator 和 VS2010。

可能是什么导致了这种奇怪的行为?

最佳答案

这可能是因为 Visual Studio 默认情况下在您的可执行文件中包含一个 list 文件,其中包含初始化它的必要内容。要使 gui 的主题成为操作系统(XP、Vista、7)之一,需要 list 。 参见 this answer还有这个MSDN article .

请注意,它与 Qt gui 无关,因为 Qt 小部件的渲染不是通过 OS 渲染器而是通过 QStyle 完成的。 .

关于c++ - DLL 中显示的对话框在 Qt Creator 项目中具有 Win98/Classic 样式控件,但在 Visual Studio 中主题正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13890100/

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