如一个主对话框创建一个模式子窗口,子窗口中要取一些主窗口的EDIT控件取的值,自私取得这些父窗口的控件值呢?

解决方案 »

  1.   

    可以在子窗口DoModal前取得父Dialog的控件值传进去
      

  2.   

    假设父对话框为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}
      

  3.   

    谢谢laiyiling(最熟悉的陌生人),搞定了