wxwidgets连接多个函数
wxwidgets connect multiple functions
我正在尝试将按钮连接到不同 类 中的两个不同功能。问题是,每当我连接第二个功能时,与第一个功能的连接似乎就消失了
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);
非常感谢任何解决此问题的建议
第二个 Connect 调用将替换第一个。
可能有一个调用 class1::func1 和 class2::func2 的方法(比如 onXXXButtonClicked),并将按钮连接到 onXXXButtonClicked。
找到的第一个事件处理程序首先获取事件,如果它没有调用 event.Skip()
作为其处理的一部分,则不会调用其他处理程序。因此,如果您想为一个事件使用多个处理程序,您需要确保您的事件处理程序调用 wxEvent::Skip()
。有关详细信息,请参阅 the event handling processing overview。
另请注意,在多个地方处理诸如 wxEVT_BUTTON
之类的命令事件通常不是一个好主意,即让程序员和用户都感到困惑。您希望按钮点击只被处理一次,虽然您可以为它设置多个处理程序,但这不太可能是个好主意。
我正在尝试将按钮连接到不同 类 中的两个不同功能。问题是,每当我连接第二个功能时,与第一个功能的连接似乎就消失了
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);
非常感谢任何解决此问题的建议
第二个 Connect 调用将替换第一个。
可能有一个调用 class1::func1 和 class2::func2 的方法(比如 onXXXButtonClicked),并将按钮连接到 onXXXButtonClicked。
找到的第一个事件处理程序首先获取事件,如果它没有调用 event.Skip()
作为其处理的一部分,则不会调用其他处理程序。因此,如果您想为一个事件使用多个处理程序,您需要确保您的事件处理程序调用 wxEvent::Skip()
。有关详细信息,请参阅 the event handling processing overview。
另请注意,在多个地方处理诸如 wxEVT_BUTTON
之类的命令事件通常不是一个好主意,即让程序员和用户都感到困惑。您希望按钮点击只被处理一次,虽然您可以为它设置多个处理程序,但这不太可能是个好主意。