模态子对话框给主对话框传值,为什么又打开一个新的主对话框

littleandroid 2013-08-02 03:03:56
主程序中添加子对话框:
点击OK按钮弹出子对话框
void CNumberDlg::OnOK() 
{
// TODO: Add extra validation here
CMyParam Dlg;
Dlg.DoModal();
}


子对话框向主对话框传回数据:
void CMyParam::OnOK() 
{
// TODO: Add extra validation here
CString str;
CWnd * pWnd=GetDlgItem(IDC_EDIT_IN);
pWnd->GetWindowText(str);

CNumberDlg mDlg;
mDlg.m_Numbershow=atoi(str);
mDlg.DoModal();
CDialog::EndDialog(IDOK);//关闭对话框

}


CNumberDlg主对话框类,CMyParam子对话框类。在子对话框设置完数据返回后,为什么又打开一个新的主对话框,哪里出错了哦?怎么解决呢,帮帮忙?
...全文
67 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
littleandroid 2013-08-02
  • 打赏
  • 举报
回复
OK了,我把UpdateData(TRUE)写成UpdateData(true)了。大小写还不一样
littleandroid 2013-08-02
  • 打赏
  • 举报
回复
引用 1 楼 schlafenhamster 的回复:
CNumberDlg mDlg; mDlg.m_Numbershow=atoi(str); mDlg.DoModal(); 你自己有打开一个 新的。 子对话框向主对话框传回数据:
void CMyParam::OnOK() 
{
// TODO: Add extra validation here
//m_NewValue;// 子对话框 拖个 edit , 用向导 关联 为 CSting。 
UpdateData(TRUE);
CDialog::EndDialog(IDOK);//关闭对话框

}


void CNumberDlg::OnOK() 
{
// TODO: Add extra validation here
CMyParam Dlg;
if(Dlg.DoModal()==IDOK)
{
CString newValue=Dlg.m_NewValue;
...
}

;
}
试了一下,是没再打开主对话框,就是为什么值没传给主对话框呢?我哪里又错了
Eleven 2013-08-02
  • 打赏
  • 举报
回复
可以通过给主窗口发送消息即可
schlafenhamster 2013-08-02
  • 打赏
  • 举报
回复
CNumberDlg mDlg;
mDlg.m_Numbershow=atoi(str);
mDlg.DoModal();

你自己有打开一个 新的。

子对话框向主对话框传回数据:
void CMyParam::OnOK() 
{
// TODO: Add extra validation here
//m_NewValue;// 子对话框 拖个 edit , 用向导 关联 为 CSting。
UpdateData(TRUE);
CDialog::EndDialog(IDOK);//关闭对话框

}


void CNumberDlg::OnOK()
{
// TODO: Add extra validation here
CMyParam Dlg;
if(Dlg.DoModal()==IDOK)
{
CString newValue=Dlg.m_NewValue;
...
}

;
}

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧