wxWidgets 学习笔记 之 2事件驱动(1)
2013-01-16 22:22
441 查看
转载请注明出处:/article/5365551.html
wxWidgets 事件驱动类都是wxEvtHandler的派生类,它们都会在其内部维护一个事件表。
创建一个静态事件表的步骤:
1) 定义一个直接或者间接继承自wxExtHandler的类。
2) 为每一个你想要处理的事件定义一个处理函数。
3) 在这个类中使用DECLARE_EVENT_TABLE声明事件表。
4) 在.cpp文件中使用 BEGIN_EVENT_TABLE 和 END_EVENT_TABLE 实现一个事件表。
5) 在事件表的实现中增加事件宏,来实现从事件到事件处理过程的映射。
所有的事件处理函数形式都相同,void返回值,一个事件对象作为参数:
处理按钮点击事件的过程
只有Command事件(直接或间接继承自wxCommandEvent的事件)才会被递归的应用到其父窗口的事件表。
wxWidgets 事件驱动类都是wxEvtHandler的派生类,它们都会在其内部维护一个事件表。
创建一个静态事件表的步骤:
1) 定义一个直接或者间接继承自wxExtHandler的类。
2) 为每一个你想要处理的事件定义一个处理函数。
3) 在这个类中使用DECLARE_EVENT_TABLE声明事件表。
4) 在.cpp文件中使用 BEGIN_EVENT_TABLE 和 END_EVENT_TABLE 实现一个事件表。
5) 在事件表的实现中增加事件宏,来实现从事件到事件处理过程的映射。
所有的事件处理函数形式都相同,void返回值,一个事件对象作为参数:
void OnQuit(wxCommandEvent& event);
#include "wx/wx.h" class MyApp : public wxApp { public: virtual bool OnInit(); }; // 1) MyFrame继承wxFrame,wxFrame间接继承自wxExHandler class MyFrame : public wxFrame { public: MyFrame(const wxString& title); // 2) 定义处理函数 void OnButtonOK(wxCommandEvent& event); private: // 3) 声明事件表 DECLARE_EVENT_TABLE() }; DECLARE_APP(MyApp) IMPLEMENT_APP(MyApp) bool MyApp::OnInit() { MyFrame *frame = new MyFrame(wxT("Minimal wxWidgets App")); frame->Show(true); return true; } // 4) 实现事件表 BEGIN_EVENT_TABLE(MyFrame, wxFrame) // 5) 增加事件宏,实现事件到事件处理过程映射 EVT_BUTTON(wxID_OK, MyFrame::OnButtonOK) END_EVENT_TABLE() MyFrame::MyFrame(const wxString& title) : wxFrame(NULL, wxID_ANY, title) { wxButton* button = new wxButton(this, wxID_OK, wxT("退出"), wxPoint(20,20)); } void MyFrame::OnButtonOK(wxCommandEvent& event) { Close(); }
处理按钮点击事件的过程
只有Command事件(直接或间接继承自wxCommandEvent的事件)才会被递归的应用到其父窗口的事件表。
相关文章推荐
- wxWidgets 学习笔记(3) 事件驱动(II)
- wxWidgets 学习笔记(3) 事件驱动(II)
- input子系统学习笔记九 evdev输入事件驱动分析
- nginx 源码学习笔记(二十一)—— event 模块(二) ——事件驱动核心ngx_process_events_and_timers
- nginx 源码学习笔记(二十一)—— event 模块(二) ——事件驱动核心ngx_process_events_and_timers
- Java学习笔记----事件驱动程序设计
- Nginx学习笔记之事件驱动框架处理流程
- Java学习笔记(15)Event-Driven Programming and Animations 事件驱动编程与动画
- 韩顺平 javascript教学视频_学习笔记23_js事件驱动机制深入理解_js常用事件_js版计算器
- nginx 源码学习笔记(二十一)—— event 模块(二) ——事件驱动核心ngx_process_events_and_timers
- 韩顺平 javascript教学视频_学习笔记22_js事件驱动机制_js事件分类_js访问css技术
- 韩顺平 javascript教学视频_学习笔记27_dom对象(window对象3.history.location.navigator.screen.event)_js事件驱动编程
- Chap 7 学习笔记-事件驱动编程技术和回送
- 事件驱动程序设计学习笔记
- java学习笔记---事件驱动监听类
- java 事件驱动 学习笔记
- input子系统学习笔记九 evdev输入事件驱动分析
- input子系统学习笔记九 evdev输入事件驱动分析
- pygame学习笔记(3):运动速率、时间、事件、文字
- jQuery学习笔记- focus和blur事件妙用