C++ 如何使用进度对话框在wxWidgets中下载文件?

C++ 如何使用进度对话框在wxWidgets中下载文件?,c++,dialog,download,progress-bar,wxwidgets,C++,Dialog,Download,Progress Bar,Wxwidgets,我这里有一些生成wxProgressDialog并从internet下载文件的代码,但我不知道如何在文件下载时更新进度条。我已经查找了有关这方面的文档,但令人惊讶的是,我还没有找到与我试图实现的目标类似的东西 void Downloader::Download(void) { wxProgressDialog dlgProgress(_T("Downloading..."), _T("Please wait while y

我这里有一些生成wxProgressDialog并从internet下载文件的代码,但我不知道如何在文件下载时更新进度条。我已经查找了有关这方面的文档,但令人惊讶的是,我还没有找到与我试图实现的目标类似的东西

void Downloader::Download(void)
{
    wxProgressDialog dlgProgress(_T("Downloading..."),
                                 _T("Please wait while your file downloads."));

    wxURL dl(Url);
    if (dl.GetError() == wxURL_NOERR)
    {
        wxInputStream *in = dl.GetInputStream();
        if (in && in->IsOk())
        {
            wxFFileOutputStream out(mPath);
            in->Read(out);
        }
        delete in;
    }
}

查看wxWidgets发行版中的“dialogs”示例,您将看到您可以调用或来更新对话框。

您确实应该解释您是如何找到update()的文档的……我当然找到了,但update()并不是神奇的。我的问题是保持这些更新与下载进度同步。这并不能回答我的问题-如何在文件下载时跟踪其下载进度?我知道如何更新进度条。啊,对不起,我误解了你的问题。但后来你写了“不知道如何更新进度条”。无论如何,如果您事先知道文件的大小,您可以以一定大小的块(4KB是常见的)读取它,并像这样管理它。您不能使用当前执行的Read()重载读取整个流。