主对话框类CLeditDlg,模态对话框CMoreDlg
主对话框中有一个combobox控件来显示地址,当按下一个按钮的时候打开模态对话框,模态对话框的编辑框中显示的是响应地址的天气,所以当主对话框中控件地址改变时需要改变模态对话框中的内容
首先,在CLeditDlg中定义一个CMoreDlg的指针pdlg,为public,并且CMoreDlg类中定义一个public的与编辑框关联的变量m_sum
然后,创建对话框
BOOL CLeditDlg::OnInitDialog()
{
CDialog::OnInitDialog();
pdlg1=new CMoreDlg;
pdlg1->Create(IDD_DIALOG1,AfxGetMainWnd());
pdlg1->ShowWindow(SW_HIDE);
}
非模态对话框的显示
void CLeditDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CString str=SixDay(str_city);
pdlg1->m_sum=str;
pdlg1->ShowWindow(SW_SHOW);
}
非模态对话框内容的改变
void CLeditDlg::OnSelchangeCombo1()
{
pdlg1->m_sum=SixDay(str_city);
m_FaceEdit.SetText(sum);
}
这样可以同步改变非模态对话框中的内容,还有一个重要的地方是cleditdlg类中有一个public的变量,来起到中间的桥梁的作用,非模态对话框在主对话框中可以当做一个类,与其他的类是一样的,可以定义一个类的对象,可以改变这个对象的成员m_sum