本帖最后由 wangningyu 于 2010-06-08 10:39:32 编辑

解决方案 »

  1.   

    WaitForSingleObject有好多种用法,可以只检测线程是否存在就可以立即返回的。可以用timer多次检测。也可以结束时主动向外面发消息或回调函数,通知外面结束了,外面再做处理。
      

  2.   

     线程中给主线程发送消息PostMessage()等,通知界面结束.
      

  3.   

    // 线程中SendMessage()给主线程
    // 
      

  4.   

    // 线程中SendMessage()给主线程
    // 
      

  5.   


    // 线程中PostMessage()给主线程
    //
      

  6.   

    1、#define WM_MSG_UPLOAD WM_USER+1012、afx_msg LRESULT OnUploadMsg(WPARAM wParam,LPARAM lParam);3、 ON_MESSAGE(WM_MSG_UPLOAD,OnUploadMsg)4、最后实现OnUploadMsg函数.在dll中这样写:
    void MainMsg()
    {
      // ::SendMessage((HWND)AfxGetMainWnd(),WM_MSG_UPLOAD,0,0);
      AfxGetMainWnd()->PostMessage(WM_CLOSE, 0, 0);
    }但是发现AfxGetMainWnd()始终为空,请高手不惜赐教!
      

  7.   

    不要这样用,还是弄一个导出函数吧,让外面应用程序设置一下,比如:
    void SetNotifyWnd(CWnd *pWnd)
    {
        g_pWnd = pWnd;
    }
    然后使用这个g_pWnd就行了。
      

  8.   

    AfxGetMainWnd()->PostMessage(WM_CLOSE, 0, 0);
    在dll中这能使用不行吧...你得把你的主窗口的HWND传给你的DLL,然后DLL向这个HWND发送消息