2012-09-14 2 views
0

여기 wxProgressDialog를 생성하고 인터넷에서 파일을 다운로드하는 코드가 있지만 파일 다운로드가 진행되는 동안 진행률 표시 줄을 업데이트하는 방법을 알 수 없습니다. 나는 이것에 대한 문서를 찾았지만 놀랍게도 내가 성취하고자하는 것과 비슷한 것을 찾을 수 없었다. wxWidgets에 분배에서 "대화 상자"샘플에서진행 대화 상자가있는 wxWidgets에서 파일을 다운로드하는 방법은 무엇입니까?

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; 
    } 
} 
+0

당신은 실제로 어떻게 Update()에 대한 설명서를 찾지 못했는지 설명해야합니다 ... –

+0

물론 그랬지 만 Update()는 마술이 아닙니다. 문제는 이러한 업데이트를 다운로드 진행 상황과 동기화하는 것입니다. – vinnydiehl

답변

0

봐 당신은 당신이 Update() 또는 Pulse() 중 하나가 대화 상자를 업데이트하기 위해 호출 할 수있는 것을 볼 수 있습니다.

+0

이것은 내 질문에 대한 대답이 아닙니다. 다운로드 할 때 파일의 다운로드 진행률을 어떻게 추적합니까? 진행률 표시 줄을 업데이트/펄스하는 방법을 알고 있습니다. – vinnydiehl

+0

아, 죄송합니다. 질문에 대한 오해가있었습니다. 하지만 "진행률 표시 줄을 업데이트하는 방법을 파악할 수 없습니다"라고 적어 두었습니다. 여하튼, 파일의 크기를 미리 아는 경우 크기 (4KB가 일반적 임)로 읽을 수 있으며 이와 같이 관리 할 수 ​​있습니다. 현재 수행중인 Read() 오버로드를 사용하여 전체 스트림을 읽음으로써이를 수행 할 수 없습니다. –

관련 문제