详细参见:使用wxWidgets进行跨平台程序开发 (王强 译)

实例:

class MyFrame:public wxFrame

{

  public:

    MyFrame()

  {  

    wxButton* button = new wxButton(this, wx_OK, wxT("ok"), wxPoint(200, 200));

  }

};

一个Frame和一个button控件。当收到一个按钮按下去的消息时,先搜索button类的事件表,如果button类没有处理函数时就搜索button类继承树中父类的事件表。

当button类继承树中没有处理函数时,这时就搜索其父窗口的事件表如例中的Frame类, Frame类中找不到的话就找 Frame父类中的事件表。如下图:

 

 注意:

只有Command事件(指那些直接或间接继承自wxCommandEvent的事件)才会被递归的传递到其父窗口的事件表。不会传递给父窗口的事件表处理的事件举例如下:wxActivate, wxCloseEvent, wxEraseEvent, wxFocusEvent, wxKeyEvent, wxIdleEvent, wxInitDialogEvent, wxJoystickEvent,wxMenuEvent, wxMouseEvent, wxMoveEvent, wxPaintEvent, wxQueryLayoutInfoEvent, wxSizeEvent, wxScrollWinEvent 和wxSysColourChangedEvent.这些事件都不会传给事件源控件的父窗口。

 posted on 2013-11-30 20:51  mfslog  阅读(302)  评论(0编辑  收藏  举报