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