Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ wxWidgets中的XP视觉样式?_C++_Wxwidgets - Fatal编程技术网

C++ wxWidgets中的XP视觉样式?

C++ wxWidgets中的XP视觉样式?,c++,wxwidgets,C++,Wxwidgets,我想知道是否有可能在wxWidgets中启用XP视觉样式, 因为它在默认情况下未启用 所有控件均以经典Windows样式绘制 我使用的是wxMSW和wxPack打包,但是没有wxFormBuilder(),并且使用MSVC++2008ee作为ide 那么,是否可以在wxWidgets应用程序中启用XP视觉样式?假设wxWidgets在windows上是围绕相应windows控件的简单包装器,要启用新的XP主题化,您需要向项目中添加清单,将通用控件dll版本6列为相关程序集 VisualStudi

我想知道是否有可能在wxWidgets中启用XP视觉样式, 因为它在默认情况下未启用

所有控件均以经典Windows样式绘制

我使用的是wxMSW和wxPack打包,但是没有wxFormBuilder(),并且使用MSVC++2008ee作为ide


那么,是否可以在wxWidgets应用程序中启用XP视觉样式?

假设wxWidgets在windows上是围绕相应windows控件的简单包装器,要启用新的XP主题化,您需要向项目中添加清单,将通用控件dll版本6列为相关程序集

VisualStudio有一个#pragma指令,允许程序员轻松地在清单中插入依赖项。将以下内容放入cpp或头文件中

#pragma comment(linker,"/manifestdependency:\"type='win32' "\
               "name='Microsoft.Windows.Common-Controls' "\
               "version='6.0.0.0' "\
               "processorArchitecture='x86' "\
               "publicKeyToken='6595b64144ccf1df' "\
               "language='*' "\
               "\"")

如果您使用的是不同的构建环境,则需要遵循该环境规则来创建清单文件,并将其作为资源添加到exe文件。

另一种可能性(不需要MSVC特定的pragma)是在.rc文件中包含“wx/msw/wx.rc”。(请参阅)

这不是对您问题的回答,但您可以考虑改用Qt。毫无疑问,我喜欢Qt及其所有强大功能。但不幸的是,我不得不为一个“Hello World”GUI应用程序部署许多大型DLL。事实上,它们是这样的,所以这应该可以做到,但根本不起作用。我尝试在#include之前或之后将其添加到头文件(也包括wx/wx.h)中,我还尝试将其添加到包含wxApp::OnInit派生类定义的.cpp文件中,但它根本不起作用。我只需要在项目>“项目名称”属性>配置属性>链接器>清单文件下启用“生成清单”属性。但是,嘿,这使得程序滞后了很多。好吧,至少我现在可以启用视觉样式。你真的应该使用Mankarse的答案而不是这个答案,因为它也适用于64位构建。