基于VS上的wxWidgets开发环境配置-《跟我学wxWidgets开发》系列教程

第三章IDE开发环境配置
 
前面把wxWidgets开发的框架准备工作做好了,本章我们来做wxWidgets开发的最后一项的准备工作。
 
本章也是分两个方面进行介绍,一个是基于VS上开发的配置,一个是基于CodeBlocks上的开发配置,本人在这里推荐使用后者,原因在前面一章已经说过。
 
3.1 基于VS上的wxWidgets开发
由于VS上没有专门对wxWidgets的支持(这方面插件倒是有的如:wxVS2008Integration但需要付费),我们只有在建立好的C++工程上去配置工程环境,那下面我们就以在VS上建立一个简单的wxWidgets项目为例展开介绍。
 
首先,我们建立一个空的VC++项目,在空的项目中新建一个空CPP文件。
 
空项目图(等待截图)
 
然后,我们右击项目,打开项目“属性”对话框:
 
项目“属性”对话框图(等待截图)
 
在属性对话框里,首先要修改的是“C/C++”->“常规”里的“附加库include路径”,我们需要把wxWidgets库的include目录和编译好的vc_lib库头文件路径填在里面:
 

D:\wxWidgets-2.9.4\include
D:\wxWidgets-2.9.4\lib\vc_lib\mswud
 

C/C++->“常规”里的“附加库include路径”对话框图(等待截图)
 
然后要在“C/C++”->“预处理”里的“预处理字符串”里加上


WIN32
_DEBUG
__WXMSW__
_WINDOWS
NOPCH
 

C/C++->“预处理”里的“预处理字符串”对话框图(等待截图)
 
然后是“连接”->“常规”里的“附加库路径”,我们把wxWidgets的库路径“D:\wxWidgets-2.9.4\lib\vc_lib”添加到里面:
 
 
“连接”->“常规”里的“附加库路径”修改图(等待截图)
 
然后在“连接”->“导入”中的“附加依赖文件”里,加入我们用到的wxWidgets库。在这里我们需要按照wxWidgets例子工程minimal的配置,加入wxmsw29ud_core.lib,wxbase29ud.lib,wxtiffd.lib,wxjpegd.lib,wxpngd.lib,wxzlibd.lib,wxregexud.lib,wxexpatd.lib,winmm.lib,comctl32.lib,rpcrt4.lib,wsock32.lib,wininet.lib这些库。在实际项目开发过程中,我们还可以根据需要随时进行导入的库的添加和修改。
 
“连接”->“导入”中的“附加依赖文件”修改图(等待截图)
 
在做完这样的设置之后,我们开始来进行测试。我们在这个工程的空CPP里加入以下代码:
 

#include"wx/wx.h"
voidmain()
{
                   wxPrintf("Hello world!");
                   inta;
                   wxScanf("%d",&a);
}
 

按F5运行,我们如果看到黑色命令提示环境窗口有Hello world!打印出来,说明已经配置成功了,现在我们来进行下一步:wxWidgets界面开发工具wxFormBuilder的使用。
 
我们首先安装好wxFormBuilder,软件是免费开源的,下载地址在第一章可以找到。
安装完成后,我们打开wxFormBuilder,可以在左侧工程子窗口里看到已经有一个默认的MyProject1了,我们在里面添加一个Dialog和一个wxStaticText,如图所示:
 

 
完成布局设计后,通过下方选项卡将窗口切换到C++代码模式,C++代码包括一个.h头文件一个.cpp源文件,把这些代码都拷贝到刚刚建立的VS工程里,这里要注意VS工程里的.h和.cpp文件名。
这样之后,我们还不能正常运行程序,因为我们通过wxFormBuilder建立的都只是单个窗体,是没有程序入口点的。我们要让程序运行起来,需要实现wxApp里面的方法,我们在刚刚拷贝生成的.h头文件的include块下加入以下代码:
 

#include<wx/wx.h>
classMyApp: public wxApp
{
public:
                   virtual bool OnInit();
};

 
然后在.cpp源文件的include块下里加入

IMPLEMENT_APP(MyApp)
 
boolMyApp::OnInit()
{
                   if(!wxApp::OnInit())
                                     return false;
 
                   MyDialog1 *dlg=new MyDialog1(NULL);
                   dlg->Show();
 
                   return true;
}
 

 
完成之后我们按F5运行程序,就能得到能过wxFormBuilder设计好的实际运行结果了:



郑重声明:
除特别声明为转载内容外,本站所有内容均为作者原创,谢绝任何单位和个人不经许可的复制和转播!
对于确有转载需要的,请先与作者联系,在获得允许后烦请在转载时保留文章出处。
本文出自Lupin's Blog:http://www.cnzui.com/archives/957