【问题标题】:wxWidgets EVT_BUTTON function parameter depending on where event came from?wxWidgets EVT_BUTTON 函数参数取决于事件来自哪里?
【发布时间】:2016-11-15 01:55:48
【问题描述】:

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

我现在想要做的是让两个不同的按钮以不同的参数调用相同的函数,这样就可以在不重复大量代码的情况下执行稍微不同的操作。

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

目前看起来是这样的:

我有一个wxButton,ID 为 1。

我有这个功能

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;
    }
}

【问题讨论】:

  • 一些当前的{伪}代码会很有用。
  • 使用 event.GetId() 获取发送事件的控件的标识符。

标签: c++ events wxwidgets


【解决方案1】:

Test::FunctionID 1ID 2 连接起来。在事件处理程序内部比较 event.GetId()ID 1ID 2

【讨论】:

  • 该死,直截了当。就是你!
猜你喜欢
  • 2019-09-25
  • 2012-04-13
  • 2012-12-14
  • 2016-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-27
相关资源
最近更新 更多