我正在尝试在我的WxWidgets C++ 应用程序中使用自定义事件,如所述here .
在我的 wxApp 的构造函数中:
Connect(wxID_ANY, wxCommandEventHandler(APP::OnMyEvent));
然后应该捕获事件的函数:
void APP::OnMyEvent(wxCommandEvent& event)
{
exit(0); //testing
}
最后,测试一下:
wxCommandEvent MyEvent(wxEVT_COMMAND_BUTTON_CLICKED);
wxPostEvent(this, MyEvent);
我启动了这个东西......但似乎没有发布或没有捕获该事件。
有人理解这种行为吗?
最佳答案
您似乎正在使用以下重载 Connect :
void Connect(wxEventType eventType, wxObjectEventFunction function,
wxObject* userData = NULL, wxEvtHandler* eventSink = NULL)
如果是这样,那么如果类型为 wxID_ANY
的事件发生(永远不会?),那么将调用连接的函数。
也许你需要:
Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(APP::OnMyEvent));
关于c++ - WxWidgets 自定义事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2709124/