我在写一个上传文件的函数。
用一个while循环读取文件并发送,再循环一次后计算已经发送的比例。
从而想操作进度条。
据以前查的资料,需要再开一个线程或者用回调函数。谁能给一个简单的例子?
最好使用回调函数实现的。

解决方案 »

  1.   

    自己定义一个回调函数,然后将回调函数的指针保存起来,等while循环读取文件并发送的
    时候就调用一次回调函数,在回调函数中控制进度条下面是在dlg中创建 自己回调函数的代码,省掉了无关的部分。 //1、首先声明回调函数形式 比如:
    typedef void(__stdcall *MYCALLBACK)(int iParam,LPVOID lpParam);MYCALLBACK pFunCallback;// 2、调用者中定义回调函数并调用SetCallback设置回调函数
    void SetCallback(MYCALLBACK pCallback)
    {
    pFunCallback = pCallback;
    }
    // 3. 
    void __stdcall MyCallback(int iParam,LPVOID lpParam)
    {
    //to do something. CWnd * pFrame = (CWnd*)AfxGetApp()->m_pMainWnd;
    if(pFrame)
    {
    CTime t = CTime::GetCurrentTime();
    CString strTime = t.Format( "   %H, %M, %S" ); pFrame->SetWindowText(strTime);
    }
    }
      

  2.   

    // 2、调用者中定义回调函数并调用SetCallback设置回调函数
    void SetCallback(MYCALLBACK pCallback)
    {
    pFunCallback = pCallback;
    }没有写怎么调用啊?