我正在尝试将一个按钮连接到不同类中的两个不同函数。问题是,每当我连接第二个函数时,与第一个函数的连接似乎就消失了
windowpointer->Connect( wxbuttonID, wxEVT_COMMAND_BUTTON_CLICKED,
(wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) &class1::func1, NULL, (wxEvtHandler*) myclass1);
windowpointer->Connect( wxbuttonID, wxEVT_COMMAND_BUTTON_CLICKED,
(wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) &class2::func2, NULL, (wxEvtHandler*) myclass2);
如果有任何解决此问题的建议,我将不胜感激
最佳答案
找到的第一个事件处理程序首先获取事件,如果它在处理过程中不调用 event.Skip()
,则不会调用其他处理程序。因此,如果您想对一个事件使用多个处理程序,您需要确保您的事件处理程序确实调用了wxEvent::Skip()
。请参阅the event handling processing overview了解更多信息。
还请注意,在多个位置处理诸如 wxEVT_BUTTON
之类的命令事件通常是一个坏主意,即会让程序员和用户感到困惑。您希望按钮单击只处理一次,虽然您可以为其设置多个处理程序,但这不太可能是一个好主意。
关于c++ - wxwidgets 连接多个功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28964493/