0

我已经用 C++(Windows XP,visual c++ 2008)构建了一个 GUI 界面。在那里您可以配置一些参数,当我单击“确定”按钮时,将启动一个静默应用程序(并使用设置的值)。当我这样做时,如果您切换到其他窗口,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;

任何想法?

4

1 回答 1

0

在第二个线程中启动外部应用程序,并通过模式弹出窗口阻止您的主线程。在模态弹出窗口中,使用计时器定期检查第二个线程是否已经完成,如果已经完成则关闭它。

作为奖励,您可以显示在模式弹出窗口中花费的时间。

于 2010-02-18T10:28:03.350 回答