情况是这样,
我要在主线程里边写Word文件,因为这个过程比较慢。
所以,在写word文档之前开了个线程,让线程里边弹出来一个domodal的Dialog,
在那个线程里边只调用了Dialog的Domodal函数。
然后我再Dialog的Timer函数里边改变ProgressBar的状态。
问题是这样系统总是Crash,
哪位兄弟有现成的代码?能否给我?逻辑上看着没有错,但是总是Crash。
在线等,谢谢!

解决方案 »

  1.   

    //把代码贴上来.
    UINT StartRoutine(LPVOID lpParam)
    {//线程处理函数.
           m_dlgProgress.DoModal();//这里的话,该线程应该停止在这里????
           return 0;
    }
    SaveWordFiles()
    {
           m_dlgProgress.SetPostion(10);
           //写Word操作.
           m_dlgProgress.SetPostion(20);
           //写Word操作.}
      

  2.   

    偶想应该是反着来吧,在主线程里面开对话框DoModal在线程里面写文件,然后线程发消息给主线程设置进度。
    如果硬要在主线程里面写word文件的话,建议主线程只保留对话框句柄,然后通过给对话框发自定义消息的方法来改变进度条状态。
      

  3.   

    因为在付线程里边如果写Word的话,你初始化Word它老是提示Word没有安装。但是放在主线程里边就好着呢,我觉得可能是COM初始化的问题,因为我其它地方也要用Word,所以我把初始化COM放在主线程里边了。如果硬要在主线程里面写word文件的话,建议主线程只保留对话框句柄,然后通过给对话框发自定义消息的方法来改变进度条状态。我在付线程里边调用的Domodal,主线程里边HWND hWnd = m_dlgProgress.GetSafeHwnd();
    hWnd为空,所以Post就Crash,
    这个你有代码么?
    能不能贴出来你的代码??在线等,多谢你了..呵呵
    谢谢!