主题:[讨论]如何控制软件的启动画面关闭???
我用一个对话框实现了自定义的splashscreen,我想实现在满足一定条件下splashscreen才能关闭,显示出主界面,我程序是这样写的myapp.cpp:
StartDialog dialog(NULL);
dialog.Show();
wxYield();
while(!states[11].flag)
{
Sleep(600);
}
dialog.Destroy();
if ( wxsOK )
{
myFrame* Frame = new myFrame(0);//启动主界面
Frame->Show();
SetTopWindow(Frame);
}
return wxsOK;
我在startdialog类中使用一个单独的线程来监控states[16].flag和states[17].flag的值,如果states[16].flag&&states[17].flag)==1我就将states[11].flag赋值为1就可以退出while 循环了
void *MyThread::Entry()
{
bool stopWhile = TRUE;
while(stopWhile)
{
if((states[16].flag&&states[17].flag) == 1)
{
values[7].value = 13;
states[16].flag = 0;
states[11].flag = 1;
stopWhile = FALSE;
}
}
return NULL;
}
可是程序运行好像就在while中无限循环了,根本就没执行startdialog中的线程。
我该怎样实现根据特定条件控制splashscreen关闭呢???
StartDialog dialog(NULL);
dialog.Show();
wxYield();
while(!states[11].flag)
{
Sleep(600);
}
dialog.Destroy();
if ( wxsOK )
{
myFrame* Frame = new myFrame(0);//启动主界面
Frame->Show();
SetTopWindow(Frame);
}
return wxsOK;
我在startdialog类中使用一个单独的线程来监控states[16].flag和states[17].flag的值,如果states[16].flag&&states[17].flag)==1我就将states[11].flag赋值为1就可以退出while 循环了
void *MyThread::Entry()
{
bool stopWhile = TRUE;
while(stopWhile)
{
if((states[16].flag&&states[17].flag) == 1)
{
values[7].value = 13;
states[16].flag = 0;
states[11].flag = 1;
stopWhile = FALSE;
}
}
return NULL;
}
可是程序运行好像就在while中无限循环了,根本就没执行startdialog中的线程。
我该怎样实现根据特定条件控制splashscreen关闭呢???