2010-10-27 52 views
1

我似乎也跟着this example (found under "Defining Your Own Event Class"),我的代码编译无误的运行,但我没有在任何地方捕获的事件。wxWidgets的2.9自定义事件

代码:

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

您的代码看起来是正确的,所以这个问题可能是你没有显示的部分。如果您是通过MyApp方法调用它,请注意不需要将this作为Bind()的最后一个参数。

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

+0

确实错误必须在周围的代码。不知何故,我能够得到一个更复杂的模板事件类的例子,但这仍然是错误的。不幸的是没时间真正弄清楚问题所在。 – JnBrymn 2010-10-29 14:41:22