【发布时间】:2019-11-05 10:14:18
【问题描述】:
我正在尝试使用此代码创建一个按钮数组
for(int i = 0; i < 10; i++)
{
wxButton *btn_random = new wxButton(this, wxID_ANY, _T("Button " + std::to_string(i)), wxPoint(250, 10*i + 10*i), wxSize(60, 25), 0);
btn_random->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &MyFrame::OnPressed, this);
}
在函数 OnPressed(wxCommandEvent& event) 中我可以获得按钮的唯一 ID,但我想在 OnPressed 函数中更改和修改按钮。我该怎么做?
另外,我读到在使用 wxWindow::GetWindowById(id) 时可以强制转换 wxWindow,但我无法使用此方法。
【问题讨论】:
-
您应该提供此按钮的特定唯一 ID,而不是
wxID_ANY,以便您能够确定按下了哪个按钮。 -
@Arkady 使用 wxID_ANY 为其分配了一个唯一 ID。我也尝试过使用 wxNewId() 但有时会出现重复项(如 0 和 0 或 32724 和 32724)。当我打印 event->GetId() 时,OnPressed 函数中的每个按钮都是唯一的
标签: c++ event-handling wxwidgets