wxWidgets 2.9自定义事件

时间:2010-10-27 20:40:34

标签: c++ events wxwidgets

我似乎已经关注了this example (found under "Defining Your Own Event Class"),我的代码编译并运行没有错误,但我没有在任何地方捕获事件。

代码:

class MyCustomEvent : public wxEvent
{
//... stuff here
};
wxDEFINE_EVENT(MY_CUSTOM_EVENT_1,MyCustomEvent);

以后我绑定事件:

Bind(MY_CUSTOM_EVENT_1, &MyApp::OnProcessCustom, this);

后来我抛出了那种类型的事件:

MyCustomEvent* eventCustom = new MyCustomEvent(MY_CUSTOM_EVENT_1);
eventCustom->SetEventObject(this);
this->QueueEvent(eventCustom); //this is MyApp

不幸的是,在抛出事件之后,它从未被OnProcessCustom捕获。

有什么想法吗?

注意:与this question类似,但不一样。

1 个答案:

答案 0 :(得分:1)

您的代码看起来正确,因此问题可能出在您未展示的部分。请注意,如果您从MyApp方法调用它,则不需要将this作为最后一个参数传递给Bind()

我还建议查看事件示例,它有定义自定义事件的工作代码(尽管使用wxCommandEvent而不是自定义类,但您可以轻松修改它以使用您的类)。