【发布时间】:2021-09-06 22:43:47
【问题描述】:
我正在创建我的第一个 C++ wxWidgets 应用程序。我正在尝试创建某种拆分按钮,其中选项显示在网格中。我有一个自定义按钮类,当右键单击它时,会打开一个包含其他按钮的自定义 wxPopupTransientWindow。 当我单击弹出窗口中的按钮时,我想模拟左键单击主按钮。我试图通过事件来实现这一点,但我有点困惑。
void expandButton::mouseReleased(wxMouseEvent& evt)
{
if (pressed) {
pressed = false;
paintNow();
wxWindow* mBtn = this->GetGrandParent();
mBtn->SetLabel(this->GetLabel());
mBtn->Refresh();
wxCommandEvent event(wxEVT_BUTTON);
event.SetId(GetId());
event.SetEventObject(mBtn);
mBtn-> //make it process the event somehow?
wxPopupTransientWindow* popup = wxDynamicCast(this->GetParent(), wxPopupTransientWindow);
popup->Dismiss();
}
}
最好的方法是什么?
【问题讨论】:
-
mBtn->GetEventHandler()->ProcessEvent(). -
如果
mBtn已经有一个事件处理器来处理事件,那么使用wxQeueEvent并将目的地设置为m_Btn。 docs.wxwidgets.org/3.0/…
标签: c++ events popup wxwidgets