首先,用mfc向导生成了一个对话框A,在这个对话框中使用了一个CListCtrl控件,然后自己添加了一个对话框B,对话框B中的一个Edit控件需要显示A中CListCtrl控件中的一些信息,请问如何可以在对话框B中得到这些信息呢?

解决方案 »

  1.   

    假设父对话框为CFatherDlg;
    子对话框为CSonDlg,其为CFatherDlg的成员变量; 
    在CFatherDlg中的变量有:
    public:
         int m_nValue;
         CSonDlg m_SonDlg;
    在CSonDlg中的变量有:
    public:
        int m_nValue;
        CButton m_btnTansfer;//传递m_nValue到父对话框的m_nValue;
    为按钮m_btnTansfer添加消息响应函数:
    void CSonDlg::OnButtonTransfer() 
    {
        // TODO: Add your control notification handler code here
            UpdateData(TRUE);//根据需要,是否有需要更新的控件变量
            m_nValue=100;//如果m_nValue不是控件变量;
            ((CFatherDlg*)(CDialog*)GetParent())->m_nValue=m_nValue;
    //这里要强制转换两次!!!//1:还可以利用这个方法直接给CFatherDlg中的控件赋值
    //((CFatherDlg*)(CDialog*)GetParent())->SetDlgItemInt(IDC_EDIT_VALUE,m_nValue);
    //2:直接从父对话框中获得变量,传到子对话框
    //((CFatherDlg*)(CDialog*)GetParent())->GetDlgItem(IDC_EDIT_VALUE)->GetWindowText(m_strValue);m_strValue是CSonDlg的成员变量;可以直接看到变化;
    //m_nYear=((CFatherDlg*)(CDialog*)GetParent())->m_nValue}
      

  2.   

    http://community.csdn.net/Expert/topic/3124/3124342.xml?temp=.6707117
    看这个帖子你会有启示
      

  3.   

    在app类下定义一个A对话框类的变量 CA *AWnd,在A的OnInitDialog中加上theApp.AWnd = this。在B对话框中就可以得到A的信息了。theApp.Awnd->XXX
      

  4.   

    还有,我不太清楚父对话框和子对话框的概念,我就是直接在项目中添加了一个Dialog,没有特别指定什么,这样生成的也算是工程最初时生产的对话框的子对话框吗?
      

  5.   

    properties-》styles选中style中的child就是子对话框了