JSLIU wxWindows 入门

Programming with wxWindows

by 刘锦宪

学习所需的背景知识

1.

已经会用 C++ 写些简单程序的人, 并对 OOP (Object-Oriented Programming) 有基本了解.

2.

知道如何设定编译器, 以及如何连结产生一个可执行档, 如果你写的程序在编译时一直出现 link error 或是

cannot find xxxx.h 这类的讯息, 而你自己无法解决这种问题, 代表你目前不适合学 wxWindows(甚至 MFC,

或其它的 framework).

1 - 什么是 wxWindows?

wxWindows 是一套 C++GUI framework, 相类似的产品是 MicrosoftMFC, 或是以前 BorlandOWL, 以及 TrolltechQT 都是相同性质的产品.

不同的是, wxWindowsGNUlicense, 在使用上完全免费, 在我用过了几种 framework, 我认为 wxWindows 是比较方便与架构清楚的一套产品, 我与朋友试过的平台计有: MS Windows 95/98, 2000. XFree86(X-Windows) with Linux, KDE/GNOME, 以及 MacOS-X.

wxWindows 已知已经 portingOS 或环境计有:

  • MS Windows. (Windows 95,98,NT, Windows 2000, Windows XP, WinCE)
  • OS/2
  • MacOS
  • X-Windows X11
  • X-Windows Motif
  • X-Windows GTK+
  • MGL
  • Nano-X
  • MicroWindows

wxWindows 相当 clear, 就像以前 BorlandOWL 2.0 一样, 所有的 code 都是 C++ standard, MFC 也不错, 但感觉复杂多了, 一个原因是 MFC 已被扩充得太大, 但如果你会 MFCOWL, 那么学 wxWindows 是相当简单轻松的.

与一些 RAD toosframeworks 不同, wxWindows, MFC, OWL 在系统建构(implement)时适合 Bottom-Up, 而不是许多人习惯的 Top-Down.

另一套常被人提起的 QT, 我认为该产品最差的地方是要你用一个 QTpre-processor (MOC), 将你的 code 转译之后再给 C++ compiler 使用.

这份教学文件以 MS Visual C++ 为例, 当然你也可以使用其它或是免费的 C++ compiler, 像是:

Compilers

OS or Platform

cygwin GNU C++

MS Windows

Borland C++ 5.X

MS Windows

GNU C++

Unix X-Windows/GTK+ /Motif

WATCOM C++

MS Windows, OS/2

wxWindows的官方网站是:  www.wxWindows.org , 最新的 wxWindows 消息都可在上面找到.

2 . 如何安装 wxWindows?

由于 wxWindows 不是 C++ compiler 内建的 library, 在安装时需要手动处理一些事宜,MS Windows 下安装后要注意 .dll.liblinkpath 设定.

linux 下安装请多利用 .rpm 安装, 安装完成会自动把 .so.lib 置入系统目录, 其它问题请见:

www.wxWindows.org

我们的教程将以 MS Visual C/C++ 6.0C++ 编译器, 使用的 wxWindows 版本是 2.2.9.

3. 第一个 wxWindows 程序

wxWindows 开启窗口向世界说 hello!

先看看程序执行结果, 这就是我们要做的第一个程序:

接着看看程序内容, 共两个档案: helloworld.hhelloworld.cpp

第一个是 helloworld.h

// ================================================================================
// filename helloworld.h
// ================================================================================
#ifndef _HELLOWORLD_H
#define _HELLOWORLD_H

#include "wx/wx.h"// ====================
// main application class.
// ====================
class HelloWorldApplication : public wxApp{public:
// Init Event.
virtual bool OnInit(); };#endif

第二个是 helloworld.cpp

// ================================================================================

// filename helloworld.cpp

// ================================================================================

#include "helloworld.h"

// ====================

// 以下这行类似是设定进入(entry class), 告诉 compiler and wxWindows,

// 这个 class main class.

// ====================

IMPLEMENT_APP(HelloWorldApplication)

// ====================

// initialization.

// ====================

bool HelloWorldApplication::OnInit()

{

wxFrame *frame;

frame = new wxFrame( NULL,-1, "Hello World 1!", wxPoint(50, 50), wxSize(450, 300));

frame->Show(TRUE);

return TRUE;

}

流程解析:

 

我们在程序中写了这一行:

IMPLEMENT_APP(HelloWorldApplication)

主程序的所在 class 将是 HelloWorldApplication , 进入后会自动呼叫 OnInit() ,

所以我们在 OnInit(), 填入了一些程序代码, 这些程序代码的目的很简单: 开个 frame 而已.

若不开 Frame, 则程序还是可以执行, 只是我们无法看到窗口, 但程序实际是在背景跑,

如果是在 MS Windows, 可以用[工作管理员]看到[应用程序][处理程序], 程序是在执行

却没有窗口.

底下这行程序:

 

frame = new wxFrame( NULL,-1, "Hello World 1!", wxPoint(50, 50), wxSize(450, 300));

 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=12753

JSLIU 的 wxWindows 入门相关推荐

  1. 学习python(入门篇)

    俺这里想给大家初步介绍一下Python编程. 各位能看英文的, 最好是去看www.python.org上的其原作者Guido van Rossum 的入门介绍. (Python看成自1.6版以后就能处 ...

  2. Python入门 —— 03GUI界面编程

    GUI(Graphical User Interface) 即图形用户接口,又称图形用户接口. 是指采用图形方式显示的计算机操作用户界面.GUI 是屏幕产品的视觉体验和互动操作部分. "你的 ...

  3. 用Construct 2制作入门小游戏~

    今天在软导课上了解到了Construct 2这个神器,本零基础菜鸟决定尝试做一个简单的小游戏(实际上是入门的教程啊= = 首先呢,肯定是到官网下载软件啊,点击我下载~ 等安装完毕后我便按照新手教程开始 ...

  4. Docker入门六部曲——Swarm

    原文链接:http://www.dubby.cn/detail.html?id=8738 准备工作 安装Docker(版本最低1.13). 安装好Docker Compose,上一篇文章介绍过的. 安 ...

  5. Docker入门六部曲——Stack

    原文链接:http://www.dubby.cn/detail.html?id=8739 准备知识 安装Docker(版本最低1.13). 阅读完Docker入门六部曲--Swarm,并且完成其中介绍 ...

  6. Docker入门六部曲——服务

    原文链接:http://www.dubby.cn/detail.html?id=8735 准备 已经安装好Docker 1.13或者以上的版本. 安装好Docker Compose.如果你是用的是Do ...

  7. 【springboot】入门

    简介: springBoot是spring团队为了整合spring全家桶中的系列框架做研究出来的一个轻量级框架.随着spring4.0推出而推出,springBoot可以説是J2SEE的一站式解决方案 ...

  8. SpringBoot (一) :入门篇 Hello World

    什么是SpringBoot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不 ...

  9. 入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集-深度学习问题

    入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集 GT_Zhang关注 0.1012019.08.01 18:43:34字数 1,874阅读 795 Hi,欢迎各位来自Paddl ...

  10. 5 分钟入门 Google 最强NLP模型:BERT

    BERT (Bidirectional Encoder Representations from Transformers) 10月11日,Google AI Language 发布了论文 BERT: ...

最新文章

  1. js判断鼠标位置是否在某个div中
  2. 2.14 文件和目录权限chmod
  3. Exchange与ADFS单点登录 PART 3:部署和配置WAP
  4. 基于HLS格式的低延时互动直播技术
  5. Orchard架构介绍
  6. 【Hadoop系列】HDFS
  7. JSON为什么那样红(另有洞天)
  8. php简易投票系统设计,如何使用php做出简易在线投票系统
  9. C Tricks(十七)—— 对角线元素的屏蔽、二维数组(矩阵)的遍历
  10. Linux系统中运行jar包的四种方式
  11. linux mc 命令,linux的mc命令是什么有什么用
  12. 微信小程序 Video API
  13. hmcl启动器找不到java_HMCL启动器安装1.16.3版本出现以下问题
  14. UA MATH523A 实分析3 积分理论例题 Fubini定理计算简单一元定积分的一个例题
  15. UML之教学管理系统——4、Rational Rose画活动图
  16. GitLab Admin Area
  17. OO系统分析员之路--用例分析系列(1)--什么是用例
  18. 学习 spring-cloud-aibaba第九篇,综合应用微信小程序《背诗词》
  19. 19号笔刷 ps_ps的19号笔刷怎样设置,详细点,最好配点图
  20. 可恶的定理,但是却有大用

热门文章

  1. Java数字抽奖游戏核心代码及分析
  2. 知识点速记 | 本机号码一键登录?
  3. 使用Fiddler4抓取微信小程序请求
  4. ROST情感分析的语法规则_基于「木兰」编译器,八行代码实现 quot;对于...中的quot;语法
  5. 2022爱分析· 地产科技厂商全景报告
  6. 2022年上半年网络工程师下午真题及答案
  7. java快捷键大全,非常详细,清楚明了
  8. win10系统安装虚拟机
  9. ps数位板绘画遇到问题总结
  10. ODI Studio(二)--接口数据库集成,数据库 TO 数据库