环境配置篇

玩过Linux的人应该对Code::Blocks和wxWidgets并不陌生。

Code::Blocks是一款非常有名的代码编辑器,在linux下用不惯vim的话,这是个不错的选择。但千万不要把它和编译器混淆,CB本身并没有独立编译程序的功能,需要调用系统已经安装好的编译器,比如Linux下的GCC,Windows下的VC编译器。所以,在系统本身并没有编译器的前提下,是不能使用CB的。不过在其官网下载的windows版的CB,可以选择安装MinGW编译器。这款编译器就是大名鼎鼎的GNU的Windows版本。

wxWidgets是一个出色的应用程序开发框架,具有良好的跨平台性。用其开发图形界面应用程序简洁、高效。最新版本为wxWidgets2.9.3(http://sourceforge.net/projects/wxwindows/files/2.9.3/)。这个版本是未编译版本,不能直接进行wxWidgets程序的开发。推荐下载wxWidgets2.8.12版本的wxPack(http://wxpack.sourceforge.net/Main/Downloads),这个版本是编译好的,可以直接进行wx程序的开发。

选择CB作为wxWidgets程序开发的编辑器是因为CB对wxWidgets程序有着先天的支持,并且可以配合wxSmith插件,可以进行可视化的图形界面设计,就像MFC的界面编辑一样。

正常安装好后,就可以开始我们的wxWidgets程序开发了。

wxWidgets小试牛刀

建立一个新的wxWidgets项目,CB对wx的支持能力由此凸显出来了。

选择我们的wx版本,2.8

选择界面编辑器,选择wxSmith。wxFormatBuilder也是一款强大的界面编辑器,但是在Linux下很容易崩溃,给我留下了很不好的印象。况且,wxSmith是CB的一个插件,集成在IDE中,用起来更方便。

这里填写wx安装的根目录,CB会自动配置include、lib等目录。再一次赞一个CB对wx的支持。

那些控件、布局可以自己动手试一试。如果搞过MFC、GTK、QT什么的,应该对这些都不陌生。

wxWidgets是基于消息机制的,跟MFC很类似,跟QT不同。wx内部维护一个消息循环,对某一消息的响应函数,需要注册,像MFC的DDX等宏一样。wx注册位置在

BEGIN_EVENT_TABLE(wxTestDialog,wxDialog)//(*EventTable(wxTestDialog)//*)
END_EVENT_TABLE()

比如,我们想为一个ID为ID_BTN_OK的按钮注册一个消息响应函数,可以这样:

(1)在Main类中声明一个void OnOk(wxCommandEvent& event)的消息响应函数

(2)在上述位置注册消息响应函数

BEGIN_EVENT_TABLE(wxTestDialog,wxDialog)//(*EventTable(wxTestDialog)//*)
EVT_MENU(ID_BTN_OK,wxTestDialog::OnOk)//注意这里,没有分号
END_EVENT_TABLE()

(3)实现OnOk函数。

wx在消息循环中,没有判定消息的具体类型,比如我们只知道ID_BTN_OK这个按钮控件有事件发生,有消息产生,但并不知道是按下、松开、或是其他消息。我们需要在响应函数中,调用event.GetEventType来确定。

以上是项目开发实录,会随着项目的开发,对wxWidgets进行更深入的记录。

转载于:https://www.cnblogs.com/raymon/archive/2012/03/14/2396727.html

Windows 7+Code::Blocks+wxWidgets实录(一)相关推荐

  1. 搭建跨平台编程环境Code::Blocks+wxWidgets

    搭建跨平台编程环境Code::Blocks+wxWidgets 转载于:https://www.cnblogs.com/zhangyang/archive/2007/07/17/821535.html

  2. Windows环境下Code::Blocks中成功配置MySQL Connector/C连接MySQL数据库

    下面我将介绍当需要用C语言开发能访问MySQL数据库的程序时成功配置的关键事项. 操作系统:Windows 7 x64 编程环境:Code::Blocks 10.05(32bit) 配置方式说明:用C ...

  3. ubuntu下安装code::blocks

    简介 Code::Blocks,有时也简单打成"CodeBlocks",是一款全新的C++集成设置环境软件(IDE). 作为一款C++的IDE,Code::Blocks至少有以下几 ...

  4. CodeBlocks中文汉化Code::Blocks 10.05 中文版

    http://jianhai1229.blog.163.com/blog/static/3488700020101250125766/ 实现中文界面  实现中文界面,包括两个步骤.最主要的是安装其中文 ...

  5. Code::Blocks介绍

    软件类型:编程软件 软件性质:免费软件 操作系统:veket 应用平台:veket全系列 网站链接:http://www.codeblocks.org Code::Blocks 是一个开放源码的全功能 ...

  6. Code::Blocks 介绍

    1.Code::Blocks 是一个开放源码的全功能的跨平台C/C++集成开发环境. 相比于QT designer这类界面设计工具而言,Code::Blocks是完整的开发环境:相比于基于Delphi ...

  7. Code::Blocks(V20.03)工具安装、汉化、使用一条龙介绍

    文章目录 1.猿如意介绍 2.Code::Blocks简介 3.Code::Blocks安装 3.1 下载 3.2 安装 3.3 汉化(可选项) 4.Code::Blocks使用 4.1 基本界面一览 ...

  8. Code::Blocks

    Code::Blocks 是一个 开放源码的全功能的跨平台C/ C++ 集成开发环境. Code::Blocks是开放源码软件.Code::Blocks由纯粹的C++语言开发完成,它使用了著名的图形界 ...

  9. 使用 Code::Blocks 搭建 LVGL 模拟器仿真环境

    为了方便大家学习 LVGL 图形库开发,我们可以在 PC 上使用模拟器进行学习,而无需从嵌入式开发板移植开始.目前有蛮多好用的 LVGL 模拟器,比如 Visual Studio.Clion.QEMU ...

最新文章

  1. LeetCode简单题之数组异或操作
  2. left join on 和where条件的放置
  3. ListView的高级使用
  4. 面试 | 创建多少个线程合适,该怎么回答?
  5. java excel读取操作,Java读取Excel并操作
  6. android 内置app,android9.0内置APP
  7. 爱上MVC~为DisplayNameFor添加扩展,支持PagedList集合
  8. 《几何与代数导引》习题1.38
  9. 乘方取模计算(模幂计算)
  10. 计算机课奖金计算步骤,计算机二级excel真题:计算员工奖金
  11. [转载] Python3 使用 SQLite3 数据库的操作笔记:批量插入
  12. Python 文字转语音(TTS)
  13. mysql d是什么意思_是mysqld意思
  14. BZOJ 2794 [Poi2012]Cloakroom(离线+背包)
  15. Thinking -- CSS从根解决选择前一个兄弟元素
  16. 堡垒机是什么,堡垒机的作用在哪里
  17. 批量将一个 PPT 幻灯片文件按固定页数拆分成多个幻灯片文件
  18. 利用TUN创建虚拟网络
  19. 为什么不建议把数据库部署在 Docker 容器内?
  20. 经典到下跪的那些资源网站盘点

热门文章

  1. android studio远程控制,Android Studio远程登录控制台缺少“网络”和“窗口”命令?...
  2. matlab中normfit,MATLAB中如何得到一组统计数据的分布特征
  3. 信息服务器已停止工作,游戏服务器已停止工作
  4. linux中用gtk编写的聊天室能运行的,CHAT_ROOM
  5. php mysql insert数组_PHP – MySQL编写的INSERT数组语句
  6. 高精度运算(C++实现)
  7. android5多窗口,教程 开启 Nexus5 Android M 的多窗口模式。
  8. MySQL面试题 | 附答案解析(十二)
  9. python操作word文档(python-docx)
  10. 深度学习中的一些英文解释