主对话框与非模态对话框之间的通信

主对话框类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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值