wxWidgets EVT_BUTTON函数参数取决于事件的来源?

时间:2016-07-12 17:26:21

标签: c++ events wxwidgets

我使用wxWidgets和EVT_BUTTON makro来管理哪些按钮调用哪些功能。

我现在想要做的是让两个不同的按钮使用不同的参数调用相同的函数,以便可以执行稍微不同的操作而无需复制大量代码。

另外一种可能性不是调用带参数的函数,而是在输入函数后以某种方式进行分离,但我无法在事件对象中找到任何有用的信息。

目前它看起来像这样:

我有一个ID {1} wxButton

我有功能

void Test::Function(wxCommandEvent& event) {
    DoStuff;
}

我还有wxWidgets-makro EVT_BUTTON(1,Test::Function),当我按下ID 1按钮时,它会调用我的功能。

我想要的是我有两个ID为1和2的按钮,它们都会导致相同的功能,并且我可以在功能内部区分它们,例如

void Test::Function(wxCommandEvent& event) {
    if (event.comesFromtButton1) { //how to realize this is basically my question
        doButton1Stuff;
    } else {
        doButton2Stuff;
    }
}

1 个答案:

答案 0 :(得分:2)

Test::FunctionID 1ID 2联系起来。在事件处理程序内部将event.GetId()ID 1ID 2进行比较。