0. 介绍

wxWidgets是一个开源的跨平台的C++构架库(framework),它可以提供GUI和其它工具。目前的3.0.0版本支持所有版本的Windows、带GTK+或Motif的Unix和MacOS。wxWidgets在不同平台上使用Native API完成GUI相关工作,所以性能和最终App的体积都比Qt好很多。经过十多年的发展,其稳定性、兼容性和相关文档都已日臻完善。在前几年其开发文档曾遭受诟病,但最新的3.0.0所带文档已相当完整。

1. 下载

下载地址:http://www.wxwidgets.org/downloads/

此处我们下载Windows安装版。

2. 编译

安装完成后,使用VS20xx打开安装目录下的build/msw/xxx.sln文件。建议把每个configuration都build一次。

注:据文档称,如果一次编译不能全部通过,可能是子项目编译顺序引起的问题,只要再编译一到两次就可以了。在我的VS2012上一次编译通过。

3. 编译完成后,让我们来做一个带窗口的最小程序。

新建一个vc++空项目;

添加五个文件:

MyFrame.cpp MyFrame.h  (窗口Frame类,继承于wxFrame,将被MyApp实例化)

MyApp.cpp MyApp.h (应用程序类,继承于wxApp,在OnInit成员函数中实例化MyFrame,将被main.cpp实例化)

main.cpp (主文件,实例化MyApp)

4. 工程包含目录中添加wxWidget安装目录下的include和include/msw

5. 工程lib目录附加wxWidget安装目录下的lib/vc_lib

6. 增加预处理_UNICODE

7. MyFrame.h

#ifndef MYFRAME_H
#define MYFRAME_H#include <wx/wx.h>class MyFrame : public wxFrame
{
public:MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
};#endif // MYFRAME_H

8. MyFrame.cpp

#include "MyFrame.h"// 代码想当简短,只是调用基类构造函数
MyFrame :: MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size): wxFrame(NULL, wxID_ANY, title, pos, size)
{
}

9. MyApp.h

#ifndef MYAPP_H
#define MYAPP_H#include <wx/wx.h>class MyApp : public wxApp
{
public:// 我们需要重新实现基类虚函数virtual bool OnInit();
};#endif // MYAPP_H

10. MyApp.cpp

#include "MyApp.h"
#include "MyFrame.h"bool MyApp :: OnInit()
{// 实例化窗口框架类MyFrame *myFrame = new MyFrame("MyApp", wxDefaultPosition, wxDefaultSize);myFrame->Show();return true;
}

11. main.cpp

#include <wx/wx.h>#include "MyApp.h"
#include "MyFrame.h"// 核心代码只需一行
wxIMPLEMENT_APP(MyApp);

12. 没什么问题的话,编译会顺利完成,运行后显示一个空窗口。

13. 附加说明:wxApp::OnInit()相当于main函数,可以把它看作整个程序的入口。

14. 结语

早期的wxWidgets编程风格类似于MFC,其消息处理使用DECLARE_EVENT/BEGIN_EVENT_TABLE/END_EVENT_TABLE实现。新的wxWidgets可以像Qt的connect函数那样,使用bind函数完成消息和处理函数的动态绑定。应该说,wxWidgets正走在逐渐完美的路上。

wxWidgets:入门相关推荐

  1. wxWidgets入门小程序

    //要在程序中使用wxWidgets库,首先要包含头文件"wx/wx.h" #include "wx/wx.h" #include "wx/wxpre ...

  2. GTK+, Qt, wxWidgets compare

    1.先讲 GTK+ GTK+ 主要用在 X Window 上,整个设计的架构和许多概念和 MFC 以及一般 Windows 上的程式开发大异其趣,入门门槛较高,而且最主要的特色是,它用不具有物件功能的 ...

  3. robotframework安装包_Robot Framework零基础入门教程

    原作者:逆之時間軸 原出处:CSDN 原文链接:https://blog.csdn.net/yydoraemon/article/details/13847781 版权声明:本文为博主原创文章,转载请 ...

  4. wxWidgets:创建其他框架

    wxWidgets:创建其他框架 wxWidgets:创建其他框架 介绍 入门 实现框架的层次结构 子框架与父框架之间的通信 概括 wxWidgets:创建其他框架 介绍 创建其他框架 到目前为止,我 ...

  5. wxWidgets:支持国际化

    wxWidgets:支持国际化 wxWidgets:支持国际化 入门 翻译目录中的内容 开始翻译成新语言 使用最新的字符串更新更新现有翻译 数据文件组织 将其放入您的应用程序中 wxWidgets:支 ...

  6. wxWidgets:印刷Printing

    wxWidgets:印刷 wxWidgets:印刷 wxWidgets:印刷 对于简单的使用,wxHtmlEasyPrinting将使您快速入门. 如果您需要更复杂的绘图打印,这里有一个小代码片段,可 ...

  7. wxWidgets:在带有 DC 的面板上绘图

    wxWidgets:在带有 DC 的面板上绘图 wxWidgets:在带有 DC 的面板上绘图 片段 重要笔记 为避免闪烁 wxWidgets:在带有 DC 的面板上绘图 片段 如果您想在 wxPan ...

  8. wxWidgets:wxGrid概览

    wxWidgets:wxGrid概览 wxWidgets:wxGrid概览 入门 列和行大小 wxWidgets:wxGrid概览 wxGrid及其相关类用于显示和编辑表格数据. wxGrid支持表格 ...

  9. wxWidgets:wxHTML 概述

    wxWidgets:wxHTML 概述 wxWidgets:wxHTML 概述 wxHTML 快速入门 显示 HTML 设置 wxHtmlWindow 自定义 wxHtmlWindow HTML 打印 ...

最新文章

  1. zedboard嵌入式linux,zedboard构建嵌入式linux
  2. 数据窗口动态生成列_Excel黑科技:教你8个简单实用的图表生成技巧
  3. red hat linux FTP配置
  4. java 向下转型_Java_向下转型
  5. QT的QOpenGLDebugLogger类的使用
  6. 圆方圆python入门:如何学习(二)
  7. 使用纯粹的ABAP位操作实现两个整数相加
  8. Git的多人协作和分支处理测试
  9. 剧情很有趣:安全专家被骗记
  10. 6月1日发布!vivo X50外观图曝光:摄像头数量再创新高
  11. 全球开发者调查:JavaScript 成最爱,还最喜欢用 React
  12. 离模拟世界又近一步!谷歌推出开源量子计算平台OpenFermion
  13. 消息队列RabbitMQ的使用
  14. ASPJpeg和ASPUpload组件的一些属性和方法
  15. Windows11右键桌面没新建
  16. excel求四分位数(QUARTILE 函数)
  17. JavaScript交互式网页设计 • 【第3章 JavaScript浏览器对象模型】
  18. 请尽可能说出js中数组的方法,最少3个,越多越好
  19. 石墨笔记,Onenote,Effie哪个更适合教师?
  20. KPM字符串匹配next矩阵计算

热门文章

  1. 在线URL转sitemap工具
  2. php JS 导出表格特殊处理
  3. Xcode统计整个项目代码行数
  4. centos7 服务器安装nginx,mysql,php
  5. iOS边练边学--UIScrollView的属性简单使用,代理的简单介绍以及内容缩放
  6. 使用 IntraWeb (26) - 基本控件之 TIWMenu
  7. 《FilthyRichClients》读书笔记(一)-SwingのEDT
  8. 移动互联网“去哪儿”?
  9. bind 启动redis_详解Redis开启远程登录连接
  10. java socketserver多线程_JAVA I/O(五)多线程网络Socket和ServerSocket