如何使用wxBusyInfo?

时间:2012-07-31 02:36:29

标签: wxwidgets

我遇到了wxBusyInfo的问题。 我想在进行一些计算时禁用用户的操作。 我只是写这样的代码:

wxWindowDisabler disableAll;
wxBusyInfo info(_T("Working, please wait..."), this);
for(int i = 0; i < 1; i++)
{
Install();
}

在Install()函数中,我做了一些这样的工作:

wxSleep();
wxExecute(cmd, output, errors);

当我运行应用程序时,busyinfo对话框将会显示,但它不再位于应用程序的顶部。在我单击应用程序或单击busyinfo对话框后,它会像附加的图片一样。 Install()函数完成后,就可以了。但我不希望用户可以通过这种方式结束应用程序。 有什么问题?我能做什么? after click the applicatioin after click the busyinfo dialog

1 个答案:

答案 0 :(得分:0)

你正在同步调用wxExecute,这意味着它在cmd completes.之前不会返回所以你的应用程序没有机会更新显示。

因此,您需要异步调用wxExecute。

障碍是你无法看到执行命令的输出和错误。