C++ 在wxWidgets中关闭wxDialog

C++ 在wxWidgets中关闭wxDialog,c++,wxwidgets,C++,Wxwidgets,如上图所示 我在wxWidgets中创建了一个wxDialog。用户可以单击是或否。单击任一按钮后,将打开一个标准对话框,给出一条简单消息(覆盖成功或覆盖取消) 单击“是”或“否”,我希望主对话框(较大的一个)关闭 上面的代码是“Yes”按钮的事件处理程序。我尝试了destroy函数和close函数。我在网上彻底搜索了一遍,但找不到什么帮助。有时程序按语法工作,但对话框从不关闭 该对话框称为OverwriteDLG 我在网上彻底搜索了一遍,但找不到什么帮助 下面的页面描述了wxDialog类

如上图所示

我在wxWidgets中创建了一个wxDialog。用户可以单击是或否。单击任一按钮后,将打开一个标准对话框,给出一条简单消息(覆盖成功或覆盖取消)

单击“是”或“否”,我希望主对话框(较大的一个)关闭

上面的代码是“Yes”按钮的事件处理程序。我尝试了destroy函数和close函数。我在网上彻底搜索了一遍,但找不到什么帮助。有时程序按语法工作,但对话框从不关闭

该对话框称为OverwriteDLG

我在网上彻底搜索了一遍,但找不到什么帮助

下面的页面描述了wxDialog类


从我对该页面的阅读来看,如果对话框被创建为模态,则可以使用EndModal功能关闭对话框,通过返回代码返回用户操作。

关闭使用:此->关闭(真)

这意味着我需要一个从showmodel()函数中检索的返回代码。此对话框的ShowModal函数在另一个类的方法中调用。我将它的值保存在一个全局长整数中。但是,如果这个变量来自不同的类,我如何在end modal方法中使用它呢。我知道这可能是个愚蠢的问题,但我对C++编程和WxWIDGET还是很新的。你调用SMODMODE来显示对话框,直到调用EndoMalk时,调用才会返回。您可以传递要EndModal的每个值,并且ShowModal将返回您传递的值。这对于模式对话框是错误的,需要使用
EndModal()
关闭它,如接受的答案中所述。错误,否,不是吗?问题是如何关闭对话框。
void OverwriteDLG::OnButton1Click(wxCommandEvent& event)
{
     wxMessageBox ("Overwrite Complete","CopyMeister v1.0",wxOK);
}