CWinThread::m_pMainWnd = m_pDlg;
return TRUE;

解决方案 »

  1.   


    在子线程创建窗口,必须创建消息循环,因为Window的消息循环只投递消息给该线程创建的窗口因此,创建子线程必须有一个标准Window消息循环
      

  2.   

    打开的对话框中不是有windows消息循环处理的吗?
      

  3.   


    domodal才有消息循环,showWindow的没有,你要自己创建
      

  4.   

    问题解决了,原因是对话框的默认关闭方式模式对话框关闭,而现在是以非模式对话框方式打开,所以关闭的时候要把模式对话框的处理屏蔽。解决方案如下:
    重写对话框的PostNcDestroy,OnClose,OnDestroy,具体代码如下:void CMyDlg::PostNcDestroy()
    {
    // TODO: 在此添加专用代码和/或调用基类
    delete this;
    CDialog::PostNcDestroy();
    }
    void CMyDlg::OnClose()
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    this->DestroyWindow();
    /*CDialog::OnClose();*/
    }void CMyDlg::OnDestroy()
    {
    CDialog::OnDestroy();
    PostQuitMessage(0);
    // TODO: 在此处添加消息处理程序代码
    }另外默认的Ok,Cancel按钮换成
    void CMyDlg::OnBnClickedOk()
    {
    // TODO: 在此添加控件通知处理程序代码
    //OnOK();
    this->DestroyWindow();
    }void CMyDlg::OnBnClickedCancel()
    {
    // TODO: 在此添加控件通知处理程序代码
    //OnCancel();
    this->DestroyWindow();
    }