设为首页 收藏本站
查看: 799|回复: 0

Windows 7+Code::Blocks+wxWidgets实录(一)

[复制链接]

尚未签到

发表于 2015-5-10 11:05:15 | 显示全部楼层 |阅读模式
环境配置篇
  玩过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的支持能力由此凸显出来了。
DSC0000.png
  选择我们的wx版本,2.8
DSC0001.png
  选择界面编辑器,选择wxSmith。wxFormatBuilder也是一款强大的界面编辑器,但是在Linux下很容易崩溃,给我留下了很不好的印象。况且,wxSmith是CB的一个插件,集成在IDE中,用起来更方便。
DSC0002.png
  这里填写wx安装的根目录,CB会自动配置include、lib等目录。再一次赞一个CB对wx的支持。
DSC0003.png
DSC0004.png
  那些控件、布局可以自己动手试一试。如果搞过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进行更深入的记录。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-65434-1-1.html 上篇帖子: 【5月21日.北京】Windows Phone 7技术沙龙邀请函 下篇帖子: Windows Phone 8初学者开发—第7部分:本地化应用程序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表