【发布时间】:2018-11-12 18:45:50
【问题描述】:
我的窗口中有一个 wxButton,我是 binding,其中包含以下内容:
BitmapButton1->Bind(wxEVT_BUTTON, [=](wxCommandEvent& e)
{
if(TextCtrl1)
OptionsSizer->Detach(TextCtrl1);
if(Choice1)
OptionsSizer->Detach(Choice1);
if(BitmapButton1)
OptionsSizer->Detach(BitmapButton1);
if(TextCtrl1)
TextCtrl1->Destroy();
if(Choice1)
Choice1->Destroy();
if(BitmapButton1)
BitmapButton1->Destroy();
OptionsSizer->Layout();
OptionsWindow->SetSizer(OptionsSizer);
SendSizeEvent();
}, bId);
这个想法是,当单击按钮时,它会删除自身以及其他几个控件。然而,上述崩溃。我尝试过调试,但调试器似乎无法获取我的断点(我发现 wxWidgets 很常见)。
【问题讨论】:
-
我认为您不应该在
control本身上使用Destroy,而是重新排列您想要保留的框架/对话框上的控件,而无需销毁您想要销毁的控件。 -
@NeomerArcana,你为什么要摧毁它?隐藏按钮然后调用 Layout() 可能会更好,即使您不打算再次显示它。