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

WxWidgets Show form after first is closed

本文关键字:显示 表单 第一个 WxWidgets      更新时间:2023-10-16

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

我尝试将代码用于在 init 函数中启动新的食人魔窗口:

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();

这会产生同样的问题。我也在关闭事件中尝试过,但这没有任何作用。

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

您可以使用

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