c++ - WxWidgets 在第一个关闭后显示表单

标签 c++ wxwidgets

我目前正在从事一个项目,该项目涉及 3D 部分的 OGRE 和用户界面的 WXWidgets。我已经按照 hello world 教程进行操作,并且能够创建应用程序、窗口和消息映射。目标是在启动时显示一个窗口,您可以在其中选择一些特定设置,例如全屏、纹理质量和其他一些特定于应用程序的设置。选择设置后,需要关闭窗口,然后使用窗口中的设置启动 OGRE 部分。

我试图将代码放入 init 函数中以启动 ogre 的新窗口:

bool MyApp::OnInit() {
MyFrame *frame = new MyFrame( "Settings", wxPoint(50, 50), wxSize(640, 480) );
frame->Show( true );
start_ogre();
return true;
}

问题是两种形式同时显示。应用程序、框架和窗口在我的代码中分为不同的类。 我还尝试将代码放在 main.cpp 中的 wxwidget 代码之后:

wxIMPLEMENT_APP(MyApp);
start_ogre();

这给出了同样的问题。我也在 close 事件中尝试过,但那没有任何作用。

有没有一种简单的方法可以让 OGRE 表单仅在设置表单关闭时显示,而无需关闭我的应用程序或同时启动两者?

最佳答案

您可以使用对话框而不是框架,并使用 ShowModal() 显示它。这将阻塞,直到用户关闭或关闭对话框。您需要从 wxDialog 派生您的对话框,并且您需要添加一些具有适当 ID 的按钮来关闭或关闭对话框。为此,您可以使用 CreateStdDialogBu​​ttonSizer(long) 方法,您的对话框继承自 wxDialog

关于c++ - WxWidgets 在第一个关闭后显示表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27013959/

相关文章:

c++ - 创建给定高度的二叉树时出现段错误(核心已转储)

c++ - 在 C++ 中将值插入多维 vector

c++ - 创建具有多个阶段的 wxWidgets GUI

c++ - 为什么总是等级是1?

python - 如何在caffe中创建数据层?

c++ - 无法安装柯南软件包特征

c++ - 为什么在使用算术和访问运算符时向上转换

c++ - 使用 foreach 将多个 wxTextCtrl 的标签设置为空值

c++ - 是否可以枚举 wxWidgets 中的 wxFrame 子级?

perl - 我如何向没有安装 Perl 或 wxWidgets 的用户分发 Perl wxWidgets 应用程序?