0

我遇到了 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() 函数完成后,就可以了。但我不希望用户以这种方式结束应用程序。有什么问题?我能做些什么? 单击busyinfo对话框后单击应用程序后

4

1 回答 1

0

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

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

问题是您无法看到已执行命令的输出和错误。

于 2012-07-31T12:01:47.053 回答