wxwidget自定义消息处理步骤

from 

http://www.cppblog.com/kenlistian/archive/2009/02/06/73096.html

略有修改

 


自定义消息处理
(不知道在wxpython,wxruby如何自定义类型消息?
最好装个wxpython,在其demo现场编写现场查看结果)

步骤如下:

1.在宏里处理如下:

a.

BEGIN_DECLARE_EVENT_TYPES()
    DECLARE_EVENT_TYPE(wxEVT_MYCOMMAND, xxxx)
END_DECLARE_EVENT_TYPES()

 


  xxxx 为自定义数字,不过翻到wxwidget内部,其宏定义中该value好像
  没用!(...)

b. 定义wxEvT_MYCOMMAND 标识

  DEFINE_EVENT_TYPE(wxEVT_MYCOMMAND)

 

 

c. 定义宏EVT_MYCOMMAND
   格式中把自定义标识改为自己即可.拷贝.

 

#define EVT_MY_CUSTOM_COMMAND(id, fn) \
    DECLARE_EVENT_TABLE_ENTRY( \
        wxEVT_MYCOMMAND, id, wxID_ANY, \
        (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent( wxCommandEventFunction, &fn ), \
        (wxObject *) NULL \
    ),
 

 


2.在BEGIN_EVENT_TABLE表中自定义映射.
 

 
  EVT_MY_CUSTOM_COMMAND(wxID_ANY, MyFrame::OnMyfunction)

 

 

3.处理投递

    自定义消息发送,this 一般是接受消息handler,也可其它wxEvtHandler.

    wxCommandEvent myEvent(wxEVT_MY_CUSTOM_COMMAND);
    wxPostEvent(this, myEvent);

 

 

4.自定义消息处理函数
   必须符合wxCommandEventFunction格式,既为如下:

    
 void OnMyfunction(wxCommandEvent& event);

 

 

posted on 2014-02-12 15:32  Orz..  阅读(662)  评论(0编辑  收藏  举报

导航