子对话框如何向父对话框传回数据?

lizexi468 2012-05-09 04:22:32
在父对话框上有一个按钮,点击该按钮弹出子对话框(此时父亲对话框没消失),在子对话框界面输入数据,输完数据后点击子对话框上确定按钮,父对话框显示刚刚输入的数据,该怎么做呢?
...全文
379 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2012-06-14
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
lizexi468 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
引用 5 楼 的回复:

我现在的做法是,在父对话框中添加button的响应函数,
void CMydialog::OnButton1()
{
CMyModedlg dlg;
dlg.DoModal();
}
添加父对话框的公有成员变量,公有成员函数GetSetData()负责接收数据,在该函数中赋值给公有成员变量。
添加子对话框的"确定"按钮响应函数,在该函数中取得控件的输入值……
[/Quote]
按照你的方法,获取子对话框的值得操作应该放在哪了呢?如果放在GetSetData()中,再调用m_value=dlg.GetSetData()会报错。
lizexi468 2012-05-10
  • 打赏
  • 举报
回复
我在子对话框中初始化父对话框的一个实例对象,然后用该对象调用父对话框的成员函数。
wtbike 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

我现在的做法是,在父对话框中添加button的响应函数,
void CMydialog::OnButton1()
{
CMyModedlg dlg;
dlg.DoModal();
}
添加父对话框的公有成员变量,公有成员函数GetSetData()负责接收数据,在该函数中赋值给公有成员变量。
添加子对话框的"确定"按钮响应函数,在该函数中取得控件的输入值,调用父对话框的GetS……
[/Quote]
我觉得,你的这个GetSetData()完全可以是子对话框的,用于传出在子对话框中设置的值
在父对话框中如下调用就可以了

CMyModedlg dlg;
if(IDOK==dlg.DoModal())
{
m_value = dlg.GetSetData();
  ... 
}
...
向立天 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
我现在的做法是,在父对话框中添加button的响应函数,
void CMydialog::OnButton1()
{
CMyModedlg dlg;
dlg.DoModal();
}
添加父对话框的公有成员变量,公有成员函数GetSetData()负责接收数据,在该函数中赋值给公有成员变量。
添加子对话框的"确定"按钮响应函数,在该函数中取得控件的输入值,调用父对话框的GetSe……
[/Quote]你在子对话框里怎么调用的父对话框的函数
向立天 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
我在子对话框中初始化父对话框的一个实例对象,然后用该对象调用父对话框的成员函数。
[/Quote]你怎么初始化的实例
你为什么不用我在一楼说的方法呢
vc_ai_hao_zhe 2012-05-10
  • 打赏
  • 举报
回复
很简单:假设你把值显示在编辑框中,且编辑框变量为m_edit1
void CMydialog::OnButton1()
{
CMyModedlg dlg;
if(dlg.DoModal()==IDOK)
{
m_edit1= dlg.value1;//dlg.value1为CMyModedlg 类里面的公共成员,编辑框
//数据类型与dlg.value1数据类型相同。
UpdateData(FALSE);
}
}
搬砖的奶霸 2012-05-10
  • 打赏
  • 举报
回复
我觉得 你应该给变量传值啊 子对话框 按钮点完了 记得 updatedata(True)
父对话框接收完值记得 Updatedata(FALSE)
[Quote=引用 5 楼 的回复:]
我现在的做法是,在父对话框中添加button的响应函数,
void CMydialog::OnButton1()
{
CMyModedlg dlg;
dlg.DoModal();
}
添加父对话框的公有成员变量,公有成员函数GetSetData()负责接收数据,在该函数中赋值给公有成员变量。
添加子对话框的"确定"按钮响应函数,在该函数中取得控件的输入值,调用父对话框的GetSe……
[/Quote]
就叫我海 2012-05-09
  • 打赏
  • 举报
回复
void CMydialog::OnButton1()  
{
CMyModedlg dlg;
if(IDOK==dlg.DoModal())
{
this.value1 = dlg.value1;//CMyModedlg 类里面的公共成员,直接赋值即可...
  ... 
}
}
lizexi468 2012-05-09
  • 打赏
  • 举报
回复
我现在的做法是,在父对话框中添加button的响应函数,
void CMydialog::OnButton1()
{
CMyModedlg dlg;
dlg.DoModal();
}
添加父对话框的公有成员变量,公有成员函数GetSetData()负责接收数据,在该函数中赋值给公有成员变量。
添加子对话框的"确定"按钮响应函数,在该函数中取得控件的输入值,调用父对话框的GetSetData()函数将取得的控件输入值传递过去,现在的情况是,子对话框无论输入什么值,父对话框的值一直为0。
wutongsana 2012-05-09
  • 打赏
  • 举报
回复
int i;
CDialog dlg;
if(IDOK == dgl.DoModal)
{
i = dlg.XX; //XX为你对话框中的变量
}
lizexi468 2012-05-09
  • 打赏
  • 举报
回复
子对话框是DoMadol调用的。
zero_226 2012-05-09
  • 打赏
  • 举报
回复
1. 同上
2. 子对话框设置为父对话框的一个成员变量。
向立天 2012-05-09
  • 打赏
  • 举报
回复
你的子对话框应该是DoMadol调用的吧
把相关变量设成public的
这样可以直接访问
例如
yourdlg.variable

15,979

社区成员

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

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