在一个程序的对话框上放置一个Edit框和一个按钮,点击按钮会以DoMudal()形式弹出另一个对话框,弹出的这个对话框将以主对话框上的Edit框中填写的数字,来显示信息。
请问怎样才能把主对话框上的Edit框中的数据传递给要弹出的对话框,以使其能根据此数据完成初始化~~

解决方案 »

  1.   

    在将要弹出的对话框类中设置一些变量
    在DoMudal()前 把变量初始化下就OK了
      

  2.   

    CDialog1::ButtonClick()
    {
        CDialog2 dlg;    dlg.SetData(edit1.GetWindowText());
        dlg.DoModal();
    }
      

  3.   

    在构造函数中定义参数;或者另外做一个初始化函数通过参数来传递;或者在类中定义一些public成员,构造后直接写入。
      

  4.   

    后弹出的对话框加个变量CADlg OnButton(){
    UpdateData(TRUE);
    CBDlg dlg;
    dlg.SetValue(m_edit);
    dlg.DoModal();
    }
      

  5.   

    定义一个全局变量,在调用的类中的OnInitiDialog()中 SetDlgItemText(IDC_EDIT1, m_iData);
      

  6.   

    也可以使用Public成员变量,在声明一个对话框对像后就给这个成员变量赋值,然后再弹出来。
    如在主对话框中有一变量myValue,将之赋给要弹出的对话框CYourDlg中的一个公共成员变量m_value:
    CYourDlg dlg;
    dlg.m_value = myValue;
    dlg.DoModal();
      

  7.   

    我会侧重于加一个public方法

    int CDialog1::ShowDialog(LPCTSTR lpszText)
    {
       m_*.SetWindowText(lpszText);
       return DoModal();
    }
    然后
    CDialog1 dlg;
    dlg.ShowDialog(myText);
      

  8.   

    设一个全局变量,得到edit中的值,然后根据这个值在另一个对话框中的onInitdialog中初始化,