WxWidgets首先关闭后显示表单

时间:2014-11-19 10:03:54

标签: 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;
}

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

wxIMPLEMENT_APP(MyApp);
start_ogre();

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

是否有一种简单的方法可以在关闭设置表单而不关闭我的应用程序或同时启动时显示OGRE表单?

1 个答案:

答案 0 :(得分:1)

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