您的位置:首页 > 其它

wxWidgets-事件处理

2013-05-15 16:40 78 查看
1.wxEvtHanlder

2.事件处理函数

3.DECLARE_EVENT_TABLE

4.BEGIN_EVENT_TABLE

END_EVENT_TABLE

5.定义事件宏

MyFrame:public wxFrame{

1.void OnSize(wxSizeEvent& e);

2.void onButtonOK(wxCommandEvent& e);

private:

DECLARE_EVENT_TABLE()

}

wxButton* btn=new wxButton(this,wxID_OK,wxT("OK"),wxPoint(200,200);

BEGIN_EVENT_TABLE(MyFrame,wxFrame)

EVT_BUTTON(wxID_OK,MyFrame::OnButtonOK)

EVT_SIZE(..

END_EVENT_TABLE()

事件处理会在窗口控件的继承关系或者 类继承关系中搜索。



wxCommandEvent事件创建,包含标识符 wxID_OK,wxEVT_COMMAND_BUTTON_CLICKED,

wxEvtHandler::ProcessEvent 匹配



wxKeyEvent& - Skip() - 正常处理

wxBell() - 不会继续匹配事件

wxWindow::PushEventHandler

wxWindow::PopEventHandler

wxWindow::GetEventHandler

----???---p58

动态事件处理方法:

wxEvtHandler::Connect

wxEvtHandler::Disconnect - 不需要手动,窗口释放时自动调用

动态映射放在 OnInit函数中:

frame -> Connect(wxID_EXIT,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(MyFrame::OnQuit));

..

frame->Disconnect(wxID_EXIT,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(MyFrame::OnQuit));

窗口标识符:

只需要在固定上下文唯一

wxID_ANY 自动生成,不需要事件处理

自定义事件: - 没看懂 p67

wxEVT_FONT_SELECTION_CHANGED(id,func)

class wxCustomEvent : public wxNotifyEvent

{

public:

wxCustomEvent(wxEventType commandType==wxEvent_NULL,int id=0):wxNotifyEvent(commandType,id){}

wxCustomEvent(const wxCustomEvent& event):wxNotifyEvent(event){}

virtual wxEvent *Clone() const{return new wxCustomEvent(*this);}

DECLARE_DYNAMIC_CLASS(wxCustomEvent);

}

typeof void (wxEvtHandler::*wxCustomEvent)(wxCustomEvent&);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: