我要DoModal一个对话框,因为要用它来做一个循环处理,所以DoModal后把这个对话框传给一个线程函数,由线程函数在调用这个对话框的一个方法,对话框是出现了,但是它没有做任何操作,什么原因?

解决方案 »

  1.   

    模式对话框DoModal之后,窗口已经不存在,
    也就不能再调用它的方法了...如果是对控件进行的操作,运行时应该会引
    发断言:
    ASSERT(::IsWindow(m_hWnd)); 
      

  2.   

    例如:
    void CTestDlg::OnBnClickedOk()
    {
    // TODO: 在此添加控件通知处理程序代码
    CNewDlg* pDlg;
    pDlg->Create(IDD_DIALOG1);
    pDlg->ShowWindow(SW_SHOW);
    ……
    pDlg->Func1();
    ……
    // OnOK();
    }