我在对话框类里面添加了一个进度条控件,通过点击一个按钮,去执行某个非对话框类的方法,但是在方法中需要将某个变量传递回或者说,需要用方法中的变量更新调用它的对话框的控件,也就是进度条,请问该怎么做,比较急,在线等,求各位好心人指点了

解决方案 »

  1.   

    你的意思是A类中调用B类的函数,然后B类函数处理以后最后更新A窗口中的控件?你上面所提到的方法(类的成员函数)可以加个参数,比如对应的窗口类的指针或者HWND窗口句柄。
    A类函数中调用B类的函数的时候,可以A窗口类的指针传递进入即可。
      

  2.   

    可以用两个线程,一个进度条,一个执行模块。
    如果不用多线程,简单点可以用 DoEvent+sleep,模块每执行一步,进度条向前走一步。CProgressCtrl *pJindu=(CProgressCtrl *)GetDlgItem(IDC_JINDU);
    for(int i=0;i<1000;i++){
        pJindu->SetPos(i);
        DoEvent();
        sleep(1);
    }DoEvent(){
    MSG msg;
    while (PeekMessage(&msg, (HWND)NULL, 0, 0, PM_REMOVE) )//判断是否有消息
    {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }
    }