为什么按键不使用wxSmith平板?

时间:2016-02-11 03:01:17

标签: c++ wxwidgets

我是wxWidgets的新手。我在Windows 7上使用Code :: Blocks(MSW编译器),版本为wxWidgets-3.0.2。

我开始学习这个,但是当我发现在不使用wxSmith的情况下自己编写代码时我无法开发出漂亮的wxButton时,我陷入困境。

我得到的所有输出都是扁平的wxButtons和看起来像按钮的工具栏。我认为这是我的错,然后我用wxButton创建了一个小框架,然后编译。输出符合我的口味。

我复制了这个小框架的确切代码并创建了另一个没有wxSmith的项目文件,并将它们粘贴到相应的文件中。当我编译相同的代码时,我得到的只是一个扁平的wxButton。

如果我将鼠标悬停在它上面,它就不会像在wxSmith编译的代码中那样变蓝。我还注意到任何东西,例如可能是可点击的工具栏,看起来都是平的,但不是菜单。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

您似乎需要将清单添加到您的应用程序中。清单是描述您的应用程序对系统的需求的东西:您想要使用的视觉样式,与您的应用程序兼容的操作系统等。

使用wxWidgets执行此操作的最简单方法是将一个资源文件(* .rc)添加到您的项目中(或者如果您已经有一个,然后编辑您拥有的那个)并将这行代码放在那里:

#include "wx/msw/wx.rc"

您可能需要根据项目设置更改wx.rc文件的路径。文件位置是:

  

< wxWidgets目录> \ include \ wx \ msw \ wx.rc

wx.rc将根据您的构建类型包含正确的清单:

  

x86 - > " WX / MSW / wx.manifest"

     

x64 - > " WX / MSW / amd64.manifest"

     

ia64 - > " WX / MSW / ia64.manifest"

如果您不想使用wxWidgets默认清单文件,则需要:

  1. 创建文件名your_app_name.exe.manifest(或your_dll_name.dll.manifest)并手动填写(您可以在此处找到应用程序清单的说明和示例:MSDN: Application Manifests (Windows);
  2. 将此清单文件放在包含可执行文件的文件夹中(只是为了清楚,如果您的应用名称是MyCoolApp.exe,则清单必须命名为MyCoolApp.exe.manifest)或者使用 mt将清单嵌入到可执行文件中.exe 工具(mt.exe随Visual Studio一起提供,您可以在此处找到有关如何使用它来处理清单的教程:MSDN: How to: Embed a Manifest Inside a C/C++ Application