在VS2010中使用wxWidgets 2.9.3

 wxWidgets 是跨平台的基于GTK+的C++ 开源库。有点类似于windows平台的MFC。支持Windows,OSX,Linux和Unix的32位和64位结构。同时还支持一些移动平台如 windows mobile, iPhone SDK和嵌入式GTK+。如果对C++不熟,wxWidgets库同时还支持python,perl,Ruby和其他的语言的封装。WxWidgets生 成的程序,会让程序外观和本地平台一样。

下面介绍VS2010中集成wxWidgets。

1-下载wxWidgets 2.9.3

2-用vs2010编译


wxWidgets安装目录下的\build\msw文件夹,里面有

wx.dsw

wx_dll.dsw

wx_vc7.sln

wx_vc8.sln

wx_vc9.sln

用VS2010打开,并并使用VC++2010编译。

新建 win32空项目,然后添加 HelloWorldApp.h 和 HelloWorldApp.cpp

 

3- 包含目录:

在 项目属性->配置属性->C/C++->常规->附加包含目录 中添加:

C:\wxWidgets-2.9.3\include

C:\wxWidgets-2.9.3\lib\vc_lib\mswu


4-静态编译:

在 项目属性->配置属性->C/C++->代码生成->运行库:多线程调试 DLL (/MDd)

5-在 项目属性->配置属性->MFC的使用: 使用标准 Windows 库

6.添加链接包含目录:

在 项目属性->配置属性->链接器->常规->附加库目录 中添加:

C:\wxWidgets-2.9.3\lib\vc_lib

7-添加连接文件

在 项目属性->配置属性->链接器->输入->附加依赖项 中添加:

Release:

wxbase29u.lib
wxbase29u_net.lib
wxbase29u_xml.lib
wxexpat.lib
wxjpeg.lib
wxmsw29u_adv.lib
wxmsw29u_aui.lib
wxmsw29u_core.lib
wxmsw29u_gl.lib
wxmsw29u_html.lib
wxmsw29u_media.lib
wxmsw29u_propgrid.lib
wxmsw29u_qa.lib
wxmsw29u_ribbon.lib
wxmsw29u_richtext.lib
wxmsw29u_stc.lib
wxmsw29u_xrc.lib
wxpng.lib
wxregexu.lib
wxscintilla.lib
wxtiff.lib
wxzlib.lib
comctl32.lib
rpcrt4.lib


Debug:

wxbase29ud_net.lib
wxmsw29ud_html.lib
wxbase29ud_xml.lib
wxmsw29ud_adv.lib
wxmsw29ud_aui.lib
wxmsw29ud_gl.lib
wxmsw29ud_media.lib
wxmsw29ud_propgrid.lib
wxmsw29ud_qa.lib
wxmsw29ud_ribbon.lib
wxmsw29ud_richtext.lib
wxmsw29ud_stc.lib
wxmsw29ud_xrc.lib
wxscintillad.lib
wxmsw29ud_core.lib
wxbase29ud.lib
wxtiffd.lib
wxjpegd.lib
wxpngd.lib
wxzlibd.lib
wxexpatd.lib
winmm.lib
comctl32.lib
rpcrt4.lib
wsock32.lib
odbc32.lib


8.仅Debug,在 项目属性->配置属性->C/C++->预处理器->预处理器定义 中添加:

;__WXMSW__;__WXDEBUG__


9-OK


每个wxWindow程序都要有一个继承自wxApp的对象。每个程序都要用OnInit()方法来实例化,你可以在这创建主窗口。例 1.4 是 HelloWorldApp的定义:
Example 1.4. HelloWorldApp.h - The HelloWorldApp definition
#ifndef INCLUDED_HELLOWORLDAPP_H
#define INCLUDED_HELLOWORLDAPP_H
/** * HelloWorldApp类 * 这个类显示一个状态栏中包含文本"Hello World"的窗口 */
class HelloWorldApp : public wxApp
{
public: virtual bool OnInit();
};
DECLARE_APP(HelloWorldApp)
#endif // INCLUDED_HELLOWORLDAPP_H

对于主窗口我们使用wxFrame类。这个类提供了一个可以调整大小与位置的窗口。它有粗的边框与一个标题栏。另外你可以让它有一个菜单栏、工具栏、状态栏。例 1.5 是HelloWorldApp的实现.

例1.5. HelloWorldApp.cpp - HelloWorldApp的实现


//对支持预编译编译器要包含"wx/wx.h"
#include "wx/wxprec.h"
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#include "HelloWorldApp.h"
IMPLEMENT_APP(HelloWorldApp)
/* 程序从这里开始执行,类似非wxWindows程序中的main() */
bool HelloWorldApp::OnInit()
{
wxFrame *frame = new wxFrame((wxFrame*) NULL, -1, _T("Hello World"));
frame->CreateStatusBar();
frame->SetStatusText(_T("Hello World"));
frame->Show(TRUE);
SetTopWindow(frame);
return true;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值