在MFC中,我有两个模式DIALOG,第一个DIALOG点击按钮后弹出第二个对话框,
在第二个对话框中我要用到第一个对话框的数据和成员,如何做呢?
   我开始的做法是修改第二个对话框的构造函数,使其传递第一个对话框的this指针,然后在第一个对话框中直接利用。程序本身运行无错,但是在classwizard中就不能再找到第二个对话框的类,报错说什么 duplicate block .......
   请大家指点迷津!

解决方案 »

  1.   

    假设Dialog1 包含button1,Edit1,对应成员变量:m_btn1, m_strEdit,函数Dialog1::Button1()
    单击botton1,弹出Dialog2.
    Dialog1::Button()
    {
      Dialog2 dlg;
      dlg.m_str = m_strEdit;
      if(dlg.DoMode()== IDOK)
       {
         .....
       }
    }
      

  2.   

    这个问题我试过的
    在第二个对话框构造函数中添加CDialog1*  m_parent型指针
    在显示第二个对话框时加上这样一行代码
    m_parent=this;
    这样在第二个对话框显示出来之后,可以通过这个指针调用第一个对话框的变量或是函数什么的
    一切ok
      

  3.   

    呵呵,你可能记错了,这样类型不对的。该是CWnd *调用还要转换。我也做了的
      

  4.   

    我对你说的不是很理解,在第二个对话框中我要用到第一个对话框的数据和成员,那样的话,是不是不应该让这些数据属于第一个对话框呢?修改第二个对话框的构造函数,使其传递第一个对话框的this指针,然后在第一个对话框中直接利用,这个方法应该可行!
    但是在classwizard中就不能再找到第二个对话框的类,报错说什么 duplicate block .......
    这个错误我很想知道具体的情况,有时候我还想隐藏一写类的显示呢?能不能详细一点,你都做了什么,给我原代码可以吗?
    [email protected]