传递进度数据,用postmessage到该进度条的窗口,在进度条窗口获取该消息 设置SetPos,该updatedata该控件

解决方案 »

  1.   

    你这个计算函数是放在主线程里面完成,还是单独的一个线程?
    如果是主线程完成计算 ,启动UI线程啦。重cwinthread继承个类。
    如果在线程中完成计算,进度条放主界面中,N个线程postmessage向窗口发消息。消息函数setpos进度条就行。windows会自动排队
      

  2.   


    求代码,求代码哇嘿嘿嘿还要什么代码啊... 找出来的,一大堆,你了解原理就知道了撒比如:文件传输
    对端发文件数据来了,让进度条显示文件传输的过程一个对话框里有个进度条控件,当收数据线程接收到数据(文件的总大小和收到的大小)postmessage给对话框,对话框的PreTranslateMessage(MSG* pMsg)截取该消息设置进度条控件(范围和增量,setpos)其实就2个线程之间通信,一个io线程一个界面线程io线程收到的多少发送给界面线程,让界面线程更新数据的过程...
      

  3.   

    方案一:
    线程中使用SendMessage或者PostMessage向主窗口发送进度消息.  进度开始时, 主窗口显示进度条窗口并设置进度, 完成时, 主窗口隐藏进度条窗口.方案二: 
    把进度条窗口的指针传入线程中, 线程中直接控制进度条窗口的动作.
      

  4.   


      CProcessCtrl *m_process = new CProcessCtrl();  
    m_process->Create(IDD_PROCESS,this);  
        m_process->ShowWindow(SW_SHOW);  
       m_process->m_processctrl.SetPos(10) ; 我用这种好像也可以实现,为啥模态对话框就不行了