我在C ++中构建了一个GUI界面(Windows XP,visual c ++ 2008)。在那里,您可以配置一些参数,当我单击“确定”按钮时,将启动静默应用程序(并使用设置的值)。当我这样做时,如果你切换到其他窗口(它仍然存在,但你只能看到一个空格),当其他应用程序完成GUI再次工作时,GUI会冻结甚至消失。
这是正确的行为,我不希望用户能够编辑字段......但是当你看不到GUI时它有点难看。有人知道一种简单的方法,可以切换到其他窗口,并在切换回来时能够看到GUI吗?
提前致谢
编辑:
嗨,我尝试过这样做,但问题是要在后台运行应用程序我有一个使用CreateProcess的功能。因此,GUI被冻结的两种方式:如果我创建一个创建过程的线程,并且我是否直接创建过程。
然后我等待这个过程结束:
if(!CreateProcess(NULL,Args,NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,& StartupInfo,& ProcessInfo))
{
return GetLastError();
}
WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
if(!GetExitCodeProcess(ProcessInfo.hProcess,& rc))
rc = 0;
有什么想法吗?
答案 0 :(得分:0)
在第二个线程中启动外部应用程序,并通过模式弹出窗口阻止主线程。在模态弹出窗口中,使用计时器定期检查第二个线程是否已经完成,如果有,则关闭它。
作为奖励,您可以显示在模态弹出窗口中花费的时间。