有两个对话框Dialog1和Dialog2。  Dialog1(对话框)中有两个编辑框和一个按钮1,点击按钮1后弹出Dialog2(模态)
Dialog2中有两个Combo Box(组合框)和一个按钮2,现在需要点击按钮2后,关闭Dialog2并将两个组合框中选择的内容传递回Dialog1中的两个编辑框中显示,请问该怎样实现。下面是Dialog2中按钮2的部分代码:(m_ComboBox1、m_ComboBox2是Combo Box的变量   m_no、m_name是两个编辑框的变量)
 UpdateData(TRUE);
 CDlg1 dlg;
 CString str1,str2;

 int i=m_ComboBox1.GetCurSel();
 m_ComboBox1.GetLBText(i,str1);
 dlg.m_no=str1; int j=m_ComboBox2.GetCurSel();
m_ComboBox2.GetLBText(j,str2);
dlg.m_name=str2; UpdateData(FALSE);
         OnOK();
点击按钮后,编辑框中没有任何显示,请问该怎样写???在线等待!!!

解决方案 »

  1.   

    你的调用DoModal显示了才行啊,并且你的CDlg2::OnOK()函数里的去相应的字符串。
    void CDlg2::OnOK()
    {
        int i = m_ComboBox1.GetCurSel();
        m_ComboBox1.GetLBText(i,m_strComBox1);    int j=m_ComboBox2.GetCurSel();
        m_ComboBox2.GetLBText(j,m_strComBox2);
        
        OnOK();
    }void CDlg1::OnTest()
    {
        UpdateData(TRUE);    CDlg2 dlg2;
        if (IDOK == dlg2.DoModal())
        {
            m_no = dlg2.m_strComBox1;
            m_name = dlg2.m_strComBox2;
        }    UpdateData(FALSE);
    }
      

  2.   

    反正你是得到text的,你就定义几个CString来保存各控件的当前的值,再调用dlg.DoModal
      

  3.   


            m_no = dlg2.m_strComBox1;
            m_name = dlg2.m_strComBox2;

    这两句有问题吧,m_strComBox1、m_strComBox2有不是CDlg2的成员?
      

  4.   


    我的Dialog2 本来就是通过Dialog1中.DoModal得到的呀,现在要将Dialog2中的Text传到Dialog1,总不能再Domodal吧  要不然就有两个Dialog1了呀?
      

  5.   

    那你就要用Create来创建窗口,dlg要是类成员或者new出来的等
      

  6.   


    CDlg1 * m_dlg1;void CDlg2::OnOK()
    {
        int i = m_ComboBox1.GetCurSel();
        m_ComboBox1.GetLBText(i,combox1);    int j=m_ComboBox2.GetCurSel();
        m_ComboBox2.GetLBText(j,combox2);
        UpdateData(true);   m_dlg1  =  new  CDlg1();
       m_dlg1-> m_no = this.combox1;         m_dlg1->m_name = this.combox2;     UpdateData(true);     OnOK();
    }
     CDlg2 dlg2;
    void CDlg1::OnTest()
    {
         dlg2.DoModal();
    }
      

  7.   

    定义combox1,combox2的变量来存储组合框的数据。
      

  8.   

    修改Dialog2的构造函数,保存Dialog1的指针,Dialog1中提供一个public的方法来设置值