比如,有一个200次循环,执行一次,进度条走一格。
用什么方法,能通知进度条。
下面的代码可能不对,求高手指教详细方法。
void LogicChannelName::AreaLogon()
{
CWinThread* Logonthread = AfxBeginThread(LogicSendThread,(LPVOID)this,THREAD_PRIORITY_NORMAL,0,0,NULL);
for(int i=0;i<100;i++)
{
m_progress.SetPos(i);
Sleep(10);
}
}UINT LogicSendThread(LPVOID pParam)
{
for(int i=0; i<200; i++)
       {
            //在这里写什么呢?
       }
return 0;
}

解决方案 »

  1.   

    UINT LogicSendThread(LPVOID pParam)
    {
        LogicChannelName  *DLG;
        DLG->m_progress.SetPos(0);
        DLG->m_progress.SetRange( 0, 200 );
        DLG->m_progress.SetStep(1);
        for(int i=0; i<200; i++)
           {
                DLG->m_progress.StepIt();
           }
        return 0;
    }
      

  2.   


    在哪里sleep(100)?
      

  3.   

    UINT LogicSendThread(LPVOID pParam)
    {
      LogicChannelName *DLG;
      DLG->m_progress.SetPos(0);//设置当前位置
      DLG->m_progress.SetRange( 0, 200 );//该函数用来设置进度条的范围
      DLG->m_progress.SetStep(1);//用来设置步长值
      for(int i=0; i<200; i++)
      {
        DLG->m_progress.StepIt();//使进度增加一个步长
        //在这Sleep(100);或者进行你要进行的操作
      }
      return 0;
    }
      

  4.   

    http://topic.csdn.net/u/20100512/06/d1862db2-c176-4b6f-b731-6a314548c4e7.html