小弟才开始沉心研究VC,但是当在一个对话框中弹出另外一个对话框时,不知如何处理它们之间的数据交换,望各位大虾指点指点!!!!

解决方案 »

  1.   

    使用成员变量啊CMydlg dlg;
    CString str_abc = dlg.m_yourmemberviable ;
    //取回来一个值
      

  2.   

    DDE,信号,Socket,全局变量,共享内存(最好戴上阻塞操作)
      

  3.   

    先注册DDX,然后把他付给成员变量,具体可看《MFC程序设计》的对话框那章!
      

  4.   

    艾,很简单,当初我也是被那些DDE,信号,Socket,共享内存(最好戴上阻塞操作)下大的主Dlg = DlgA
    弹出Dlg = DlgB在Dlg中申明一个变量 DlgA *parent
    然后在Dlg中将this赋给DlgB.parent具体代码如下
    A:
    //.h中
    public:
    int exchange;
    CBDlg db; 
    BOOL CADlg::OnInitDialog()
    {
       CDialog::OnInitDialog();
       exchange = 8;
       db.create(IDB_B, this);   //其实this就是父对话框的指针,在子窗口中可以用getparent()取道
       db.parent = this;
       //.....
    }BOOL CADlg::OnButton1()
    {
       db.ShowWindow(TRUE);
    }B:
    //.h
    CADlg *parent;//.cpp
    //通过parent就可以取道A中任何public的值了
    //如果要A中的exchange值
    parent->exchange就可以了试试看,不行我再帮你看看
       
      

  5.   

    添加新对话框资源,加上2个edit控件IDD_EDIT1,IDD_EDIT2.m_name,m_address 为第一个对话框的成员变量。void CD001Dlg::OnButton1() 
    {
    // TODO: Add your control notification handler code here
    CDialog *pdlg = new CDialog();
    CString strtemp;

    pdlg->Create(IDD_DIALOG1); pdlg->SetDlgItemText(IDC_EDIT1,m_name);
    pdlg->SetDlgItemText(IDC_EDIT2,m_address);
    pdlg->ShowWindow(SW_SHOW); (pdlg->GetDlgItem(IDC_EDIT2))->GetWindowText(strtemp);
    AfxMessageBox(strtemp);}