我在主窗口中产生一个模式对话框,在对话框中产生一个线程,从线程向该对话框发一个消息却发现对话框不执行该消息,这是什么原因?请高手指点。
AfxBeginThread(COPCThread::GetDataThread,this,THREAD_PRIORITY_ABOVE_NORMAL,
        0,CREATE_SUSPENDED,NULL))
UINT COPCThread::GetDataThread(LPVOID lParam)
{
    //CTestopcDlg *pCTestopcDlg=(CTestopcDlg *)lParam;
    CWnd *p=(CWnd *)lParam;
    p->PostMessage(WM_MY1,0,0);
    return 0L;

解决方案 »

  1.   

    AfxBeginThread(COPCThread::GetDataThread,this,THREAD_PRIORITY_ABOVE_NORMAL,
            0,CREATE_SUSPENDED,NULL))线程挂起了?
      

  2.   

    up,把 CREATE_SUSPENDED 改成 0 就好了
      

  3.   

    BOOL CTestopcDlg::BeginGetData()
    {
    if(m_pGetDataThread)
    {::WaitForSingleObject(m_pGetDataThread->m_hThread,100);
    delete m_pGetDataThread;
    m_pGetDataThread=NULL;
    }
    if(m_pGetDataThread=AfxBeginThread(COPCThread::GetDataThread,this,THREAD_PRIORITY_ABOVE_NORMAL,
    0,CREATE_SUSPENDED,NULL))
    {
    m_pGetDataThread->m_bAutoDelete=FALSE;
    m_pGetDataThread->ResumeThread();
    return TRUE;
    }
    return FALSE;
    }
    为了使大家看清楚,我把线程创建函数补充完整
      

  4.   

    有,我向主框架MAINFRAME,主视图CVIEW,都可以,但是 在主框架MAINFRAME中建立的对话框则不行,谁能解释一下