#include <wx/wx.h> // application class class wxMyApp : public wxApp { public: // 虚函数 virtual bool OnInit(); // 处理按钮事件 void OnClick(wxCommandEvent& event) { wxString msg; msg.Printf(wxT("wxwidgets欢迎您,版本号:%s"),wxVERSION_STRING); wxMessageBox(msg,wxT("BYE,不要想我噢~"),wxOK,GetTopWindow()); GetTopWindow()->Close(); } }; IMPLEMENT_APP(wxMyApp); bool wxMyApp::OnInit() { // 创建主窗口 SetTopWindow( new wxFrame( NULL, -1, wxT("你好,我的第一个wxwidgets程序"), wxDefaultPosition, wxSize( 100, 50) ) ); // 创建一个按钮 new wxButton( GetTopWindow(), wxID_EXIT, wxT("请按我退出!") ); // 将按钮的事情与事件处理器连接connect button click event with event handler Connect(wxID_EXIT, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(wxMyApp::OnClick) ); // 显示主frame GetTopWindow()->Show(); // enter the application's main loop return true; }
这是一个简单的仅有一个按钮的程序,为了方便调试和编译,我们可以直接下载codelite的工具进行编辑和调试,该工具已经预置了wxwidgets包和WIN下的G++包
首先要定义一个类继承自wxApp类:
class wxMyApp : public wxApp
每个应用程序需要定义一个wxApp类的子类,并需要创建且只能创建一个这个类的实例,这个实例控制着整个程序的运行
该类需要一个初始化方法
// 虚函数
virtual bool OnInit();
该方法完成下面的操作
// 创建主窗口
SetTopWindow( new wxFrame( NULL, -1, wxT("你好,我的第一个wxwidgets程序"), wxDefaultPosition, wxSize( 100, 50) ) );
// 创建一个按钮
new wxButton( GetTopWindow(), wxID_EXIT, wxT("请按我退出!") );
// 将按钮的事情与事件处理器连接connect button click event with event handler
Connect(wxID_EXIT, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(wxMyApp::OnClick) );
// 显示主frame
GetTopWindow()->Show();
// enter the application's main loop
return true;
返回true表示下面可以开始事件循环来接收用户输入,否则返回false,将结束整个程序的运行。
另外,按钮是退出按钮,事件完成显示对话框,提取版本号后关闭frame,GetTopWindow()返回frame
frame是一个窗口类
wxString msg;
msg.Printf(wxT("wxwidgets欢迎您,版本号:%s"),wxVERSION_STRING);
wxMessageBox(msg,wxT("BYE,不要想我噢~"),wxOK,GetTopWindow());
GetTopWindow()->Close();
IMPLEMENT_APP(wxMyApp)是一个宏,其作用是创建一个新的应用程序对象,如果今后你需要使用
wxGetApp()函数一个到这个MyApp实例的引用,则需要使用DECLARE_APP(MyApp)宏
我们在OnInit中调用SetTopWindow,通过指定windows参数,SetTopWindow就知道哪个是主窗口
void wxApp::SetTopWindow | ( | wxWindow * | window | ) |
相关推荐
这是一部学习wxWidgets的基础文档,能够让你快速的学习
wxwidgets开发入门 API查询 深入学习wxwidgets
全书共有20章,第·1·章简要介绍了·wxWidgets·的发展历史和框架结构,第2章介绍了wxWidgets的程序框架及其实现,第3章深入剖析了wxWidgets的事件处理机制,第4~11章详细讲述了wxWidgets的图形用户界面、数据结构...
wxWidgets学习笔记,自己边看边写的一些东西,初学者可以看看!
wxWidgets(/wɪksˈwɪdʒɪts/,原名wxWindows[1])是一個開放原始碼且跨平台的物件工具集(widget toolkit),其函式庫可用來建立基本的圖形使用者介面(GUI)。wxWidgets由Julian Smart於1992年首先開發。 ...
wxWidgets跨平台界面开发,一次开发,全平编译运行。
wxWidgets和MFC混合编程 讲述在一个程序中wxWidgets和MFC的窗口如何一起工作。
wxWidgets 下的皮肤组件,非常好用
WIN版本的wxWidgets-3.1.3.zip wxWidgets源码 来自官网 下载链接 https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.3/wxWidgets-3.1.3.zip 不想花积分的可以直接下载。
wxWidgets官方帮助文档wxWidgets-2.8.7-CHM
wxWidgets自绘标题栏,项目源码分享,请使用vs2015编辑器
wxWidgets Demo source codes
wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程
针对初学者起步学习困难的实际,提供了一个学习方案,帮助C++初者提升学习能力,用CodeBlocks、wxWidgets、wxSmith开发出C++ GUI(图形用户界面)的应用程序。该资源网络版在...
wxWidgets的类型转换 char int wxString
CodeBlocks编译wxWidgets设置.pdf
wxWidgets 完整的buid demo vc6 support ///////////////////////////////////////////////////////////////////////////////////// 1. 看见很多人都在为build这关苦恼 本人在开源研究的比较多,也希望正规化,是...
wxWidgetsGUI《Cross-Platform GUI Programming with wxWidgets》的清晰中文版
wxWidgets最新版本的帮助文档,如果使用wxWidgets写程序不容错过
包含了《wxWidgets跨平台GUI编程》的中、英文两个版本。另外还有wxWidgets的类库参考指南。