从模式对话框传数据回主对话框我知道怎么做,但反过来就不行了,无法从主对话框获取数据.

解决方案 »

  1.   

    模式对话框里面给个主对话框的指针
    在模式对话框DoModal前,给这个指针赋值
      

  2.   

    很容易。假设主对话框是CMainDlg,模式对话框是CModalDlg
    在CMainDlg中调用CModalDlg时:
    CModalDlg dlg;
    dlg.m_pMainDlg = this;
    dlg.DoModal();
    在CModalDlg的.h文件中:
    class CMainDlg;
    class CModalDlg::public CDialog
    {
     ......
     public CMainDlg* m_pMainDlg;
    }
    在CModalDlg的.cpp文件中:
    #include "MainDlg.h"
    然后下面的程序中,就可以直接用m_pMainDlg指针获取主对话框中的数据了。
    一句话,就是将主对话框的指针传递到模式对话框中就可以了。
      

  3.   

    在按钮事件中这么写:
    CMyDlg mydlg;
    mydlg.m_strTest= "Test String"; //m_strTest为CMyDlg对话框的公有成员变量
    mydlg.DoModal();
    这样就可以了把你的数据从主对话框传到这个模式的对话框中了
      

  4.   

    也可以在主对话框的.cpp文件中定义全局变量使用的时候
    将主对话框的数据付给这些全局变量在从对话框中
    如:
    extern int i;然后就可使用