事件驱动(事件驱动策略)

频道:电子元器件 日期: 浏览:258

事件驱动

本文内容来自于互联网,分享事件驱动(事件驱动策略)

事件驱动  所谓事件驱动,简单地说就是你点什么按钮(即产生什么事件),电脑执行什么操作(即调用什么函数).当然事件不仅限于用户的操作.

  weWidgets的中所有可以处理事件的类都继承自wxEvtHandler,其中包含frames, buttons, menus, even documents,所有的窗体类(即从wxWindow继承的类)和程序类(application class).

  这些类可以有一个事件表,用来绑定事件和被调用的函数(handler functions).

  过程 3.2. 建立一个静态事件表(即编译时生成的事件表)的操作步骤

  建立一个新类(直接或间接从wxEvtHandler继承)

  为每个要处理的事件声明被调用的函数

  在被处理的事件所在的类的声明中加入宏DECLARE_EVENT_TABLE

  在宏BEGIN_EVENT_TABLE... END_EVENT_TABLE(就是事件表)中将函数与枚举的数字绑定(因为产生该类型的事件的按钮不唯一,要用枚举数来区分);有些事件不必与枚举数绑定,因为产生该类型的事件的对象可以确定(比如就是this).

  例 3.1. 一个事件表

事件驱动(事件驱动策略)

  BEGIN_EVENT_TABLE(MyFrame, wxFrame)

  EVT_MENU (wxID_ABOUT, MyFrame::OnAbout)

事件驱动(事件驱动策略)

  EVT_MENU (wxID_EXIT, MyFrame::OnQuit)

  EVT_SIZE ( MyFrame::OnSize)

  //不必与枚举数绑定,因为产生该类型的事件的对象是this

  EVT_BUTTON (wxID_OK, MyFrame::OnButtonOK)

  END_EVENT_TABLE()

  在事件中指定被绑定的数字,wxWidgets会将其映射到对应的函数,并调用函数

  所有在事件表中被绑定的函数有相似的形式:返回值都是void,不是virtual函数,参数为wxCommandEvent类型

关键词:驱动事件策略