【发布时间】:2014-11-19 10:03:54
【问题描述】:
我目前正在从事一个项目,其中涉及用于 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;
}
问题是两种形式同时显示。应用程序、框架和窗口在我的代码中拆分为单独的类。 我还尝试将代码放在 wxwidget 代码之后的 main.cpp 中:
wxIMPLEMENT_APP(MyApp);
start_ogre();
这给出了同样的问题。我也在关闭事件中尝试过,但没有任何作用。
有没有一种简单的方法可以让 OGRE 表单仅在设置表单关闭时才显示,而无需关闭我的应用程序或同时启动两者?
【问题讨论】:
-
你试过在 frame->Show(true) 和 start_ogre() 之间放置一个等待循环吗?类似于:while(NotConfigured) { sleep (10) } .
-
我没试过这种等待循环。但是我尝试过使用 isShown 属性。我知道这可能是一个解决方案,但想知道是否没有更合适的方法。