kenlistian

厚积薄发. 勤为桨,思为帆

   :: 首页 :: 新随笔 ::  :: 聚合  :: 管理 ::
  73 随笔 :: 4 文章 :: 22 评论 :: 0 Trackbacks


自定义消息处理
(不知道在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_MYMYCOMMAND)

 

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

 

#define EVT_MYCOMMAND(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 2009-02-06 12:06 kenlistian 阅读(2688) 评论(3)  编辑 收藏 引用 所属分类: wxwidgets

评论

# re: wxwidget自定义消息处理步骤 2009-06-25 08:58 ttt
说的不清晰。
1.在宏里处理如下:---是什么宏?????
错误百出,不如不写,完全是误导  回复  更多评论
  

# re: wxwidget自定义消息处理步骤 2009-09-04 11:13 liaweng
神吖 这是什么东东 肯定不是MFC的  回复  更多评论
  

# re: wxwidget自定义消息处理步骤 2014-02-12 15:27 Orz..
先谢过您的博文,哪怕不是原创.遇到也是缘分,

有几处可能是笔误,我在使用时发现的
b. 定义wxEvT_MYCOMMAND 标识

DEFINE_EVENT_TYPE(wxEVT_MYMYCOMMAND)

wxEVT_MYMYCOMMAND应为wxEVT_MYCOMMAND


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



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

中的
EVT_MYCOMMAND 应为 EVT_MY_CUSTOM_COMMAND

  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理