对话框a上又弹出对话框b,b的输入数据想传给a 怎么传?
//IDD_WORD2_DIALOG 是主对话框a的ID
//下面代码函数是b的一个按钮的函数
//CWord2Dlg 是主对话框的类//我想把b的m_1传给a的m_safelever CWord2Dlg *p=NULL;
p=(CWord2Dlg *)::AfxGetApp()->GetMainWnd()->GetDlgItem(IDD_WORD2_DIALOG);
p->m_safelever=this->m_1;
p->m_safelever2=this->m_2;
p->m_safelever3=this->m_3;//编译通过执行出错为什么?
有别的好方法吗?

解决方案 »

  1.   

    如果你是模态对话框在dlg_a类中定义一个dlg_b的对象 m_dlg_b;   m_dlg_b.DoModal(this);--->把指向主对话框的指针传过去在dlg_b类中定义一个dlg_a的指针m_pDlgA,在dlg_b类的构造函数dlg_b::dlg_b((Cdlg_a)* pParent /*=NULL*/)
    : CDialog(myDlg::IDD, (CWnd*)pParent)
    {
         m_pDlgA=pParent;   //指向a对话框
    }
      
    非模态的对话框也类似在构造的时候传一个父对框的指针过来,实现双方通讯
      

  2.   

    dlg_b::dlg_b((Cdlg_a*) pParent) “* 位置写错了”
      

  3.   

    你可以这样,在a的调用中:
    b bdlg;
    if(bdlg.DoModal() == IDOK)
    {
    m_x = bdlg.m_x;
    m_y = bdlg.m_y;
    }