2009-10-07 24 views
2

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

所有的控件都是用经典的Windows风格绘制的。

我使用wxMSW与wxPack打包,但没有wxFormBuilder(http://wxpack.sourceforge.net/)和MSVC++ 2008 EE作为ide。

那么,是否可以在wxWidgets应用程序中启用XP Visual Style?

+0

不是你的问题的答案,但你可以考虑使用Qt代替。 – 2009-10-07 18:31:46

+0

当然,我喜欢Qt和它的所有优秀特性。但不幸的是,我不得不只为“Hello World”GUI应用程序部署许多大尺寸的DLL。 – 2009-10-07 18:36:47

回答

4

假设wxWidgets在windows上是相应窗口控件的简单包装,为了获得新的XP主题,需要在您的项目中添加一个清单,该清单列出了公共控件dll版本6作为相关程序集。

Visual Studio有一个#pragma指令,允许程序员在其清单中插入依赖关系。将以下内容放在cpp或头文件中。

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

如果您使用的是不同的编译环境,那么你需要遵循的规则环境创建清单文件,并将其添加为资源的exe文件。

+0

事实上他们是,所以这应该这样做 – GRB 2009-10-07 19:02:37

+0

它根本不起作用。我试图在包含#include 之前的头文件(也包括wx/wx.h)中添加它,我还试图将它添加到一个.cpp文件中,该文件包含wxApp ::的派生类的定义。 OnInit,它根本不起作用。 – 2009-10-07 19:06:22

+0

没关系。我只需要在Project>“Project Name”Properties> Configuration Properties> Linker> Manifest File下启用“Generate Manifest”属性。但是,嘿,它使程序滞后很多..至少我现在可以启用视觉样式.. – 2009-10-07 19:09:48

相关问题