wxWidgets EVT_BUTTON函数参数,具体取决于事件的来源

wxWidgets EVT_BUTTON function parameter depending on where event came from?

本文关键字:取决于 事件 EVT BUTTON 函数 参数 wxWidgets      更新时间:2023-10-16

我正在使用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;
    }
}

Test::FunctionID 1ID 2连接。在事件处理程序中,将event.GetId()ID 1ID 2进行比较。