有,请在循环中加入 MSG msg;
    while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

解决方案 »

  1.   

    把sleep换成上面这个就行了,如果你愿意,可以把它封装成函数
      

  2.   

    CDlgDownload做成另外一个thread的窗口
      

  3.   

    gameboy999(活着就是幸运) :
    我的Sleep()函数是因为接收Socket阻塞错误才延时的啊,这和对话框有关吗?masterz() :
    你是说在这个子线程里再开一个子线程还是两个线程一块开?如果两个一块开怎么互相传递数据啊?
      

  4.   

    因为你的循环中间没有处理UI消息,所以才会出现象死掉了的那样。
    反正在你的循环中加入这段代码试试,不一定要替换掉sleep
      

  5.   

    gameboy999(活着就是幸运) :
    感谢,现在确实可激活了,不过如果在开一个同样线程的话就又死了,不知是什么原因
      

  6.   

    AfxBeginThread
    AfxEndThread
    如果是CThread就更好办了
      

  7.   

    this question is fixed,see: http://www.csdn.net/expert/topic/169/169918.shtm
      

  8.   

    wingking()
    我试过了,但好象只能开一个线程,再开一个线程的话第二个对话框也好象就死在那了