本来想工作线程工作结束后发送个消息给主线程,确认工作已完成。
于是我在线程函数的结尾处添加入下列代码:
::PostMessage((HWND)(GetMainWnd()->GetSafeHwnd()),WM_TTFINISHED,NULL,NULL);//通知主线程TT已完成
但是GetMainWnd()函数在这里用不成,也就是不知道怎么得到主对话框的句柄......................

解决方案 »

  1.   

    创建子线程的时候就把句柄作为参数传进去嘛
    要不然就用事件 
    主线程WaitForSingleObject 子线程完了就SetEvent
    其他的线程同步都较麻烦的样子 *_*
      

  2.   

    线程函数作为成员函数是静态的,静态函数获得不了this指针
    ==================================
    另外的办法是可以用全局变量
    CWnd* pMain = AfxGetMainWnd();
    之后在线程里用这个全局变量发消息也可以,但是这么做不好
      

  3.   

    用FindWindow不就行了吗,用窗口的标题作参数
      

  4.   

    用FindWindow不就行了吗,用窗口的标题作参数
      

  5.   

    如果是用AfxBeginThread创建的线程,可以用AfxGetMainWnd来获得主窗口指针。
    此外,也可以直接用theApp.m_pMainWnd,theApp是MFC程序中的全局变量,各种方法创建的线程都可以使用。
      

  6.   


    AfxGetMainWnd 或者用全局变量把this保存一下也可以。