在主界面线程里面开启一个工作线程,在工作线程内PostThreadMessage到主界面线程,然后主界面再刷新。现在主界面等待消息过程中处于死掉的状态。怎么让主界面线程不死啊谢谢~~~

解决方案 »

  1.   

    我是用的CFormView,在FormView里面开启线程
    HWND dwValue = this->m_hWnd;
    CWinThread* pThread = AfxBeginThread((AFX_THREADPROC)LinkEstablishTime,&dwValue);
    定义了消息映射
    ON_MESSAGE(WM_PINGINFO, OnPingInfoMsg)
    在子线程中发送消息
    PostMessage(dwThreadId,WM_PINGINFO,58,NULL);
    结果就是捕获不到消息这是咋回事啊。
      

  2.   

    PostMessage(dwThreadId,WM_PINGINFO,58,NULL);应该向窗口发消息,而不是线程
      

  3.   

    用PostThreadMessage向主线程发消息
      

  4.   

    向主窗口发送窗口消息,你在创建线程时已经将主窗口的句柄传进去了啊
    直接用行了::PostMessage(hwnd,WM_PINGINFO,58,NULL);   // hwnd是你保存的this->m_hWnd;
      

  5.   

    启动线程
    AfxBeginThread((AFX_THREADPROC)LinkEstablishTime, (LPVOID)GetSafeHwnd());线程函数中
    UINT __cdecl LinkEstablishTime(LPVOID lParam)
    {
     HWND hWnd = (HWND)lParam;
     ....
     PostMessage(hWnd, WM_PINGINFO, (WPARAM)58, 0);
     return 0;
    }
      

  6.   

    用PostMessage发往某个窗口就行了。没必要PostThreadMessage