详细参见:使用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.这些事件都不会传给事件源控件的父窗口。