本教程原文链接:http://zetcode.com/gui/wxwidgets/events/
翻译:瓶哥
日期:2013年12月7号星期六
主页:http://www.cnblogs.com/pingge/
若有翻译错误或者歧义请联系我!
事件处理是所有GUI程序重要的组成部分,所有GUI程序都是由事件驱动的。一个应用程序对其运行周期内产生的不同事件类型做出不同反应。事件主要由应用程序的用户产生,但是它们也能以其它方法产生,例如:一个网络请求、窗口管理器、定时器,当一个应用程序开始运行时,一个主循环开始启动,程序被设置在这个主循环内执行,同时等待事件的产生,当退出这个程序时,主循环也就同时停止。
事件是一个底层框架下面的程序级别的信息,被封装成一个GUI工具包。事件循环是一个等待和派遣事件或消息的编程结构,事件循环反复的寻找事件并处理它们,事件句柄和方法对事件做出反应。
事件对象是一个和事件本身有关联的对象,它通常是一个窗体,事件类型是一个刚产生的独一无二的事件。
一个简单的事件处理例子
在wxWidgets里面使用事件的传统方法是使用一个静态事件表,这是受MFC的影响。一个更加灵活和现代的方法是使用Connect()方法,因为这种方式优于事件表,我在wxWidgets教程中全部使用第二种方法。
静态事件表
在接下的一个例子中,我们会教你如何使用一个静态事件表。
button.h
#include <wx/wx.h> class MyButton : public wxFrame { public : MyButton(const wxString & title); void OnQuit(wxCommandEvent & event); private: DECLARE_EVENT_TABLE() };