MFC中两个对话框之间数据传递
来源:互联网 发布:淘宝直播中控台 编辑:程序博客网 时间:2024/05/19 13:45
这里有两种情况,
第一种情况是:
(在一个基于单文档的应用程序中,新建了两个对话框A和B,并且用两个独立的类和他们关联)
对话框A中有一个编辑框, 按下A中的一个按钮a后弹出对话框B,
B中也有一个编辑框b,
在B中输入数据 点击确定(ID0K)后 ,b中的数据能传到a,并且能显示出来
具体实现方法:
在A对话框的Button1按钮响应函数中,添加以下代码:
void DlgA::OnButton1() {// TODO: Add your control notification handler code hereDlgB dlgB; // 新建B对话框的对象if (IDOK==dlgB.DoModal()){m_strA=dlgB.m_strB; // m_strA是a编辑框关联的变量,m_strB是b对话框关联的变量}UpdateData(FALSE); }
在B对话框的“确定”ID号为(IDOK),函数中添加以下代码:
void DlgB::OnOK() {// TODO: Add extra validation hereGetDlgItem(IDC_EDIT1)->GetWindowText(m_strB); // 获取b对话框的值,保存在m_strB中);CDialog::OnOK();}
第二种情况是:
(在一个基于单文档的应用程序中,新建了两个对话框A和B,并且用两个独立的类和他们关联)
在A对话框的a编辑框中输入数据,点击确定(IDOK)按钮,A对话框消失
打开B对话框,其中的b编辑框中能显示原来a中的数据
实现方法如下:
1.在程序的App类中,添加一个成员变量,它相当于整个程序的全局变量,所有的类都能用
float myFlow;
2.在A对话框的“确定”按钮中,输入一下代码:
void CInitial::OnOK() {// TODO: Add extra validation hereUpdateData(true);CEnvirMonibeta1App *pApp=(CEnvirMonibeta1App *)AfxGetApp( );pApp->myFlow=m_Iflow; // m_Iflow 是a编辑框关联的变量CDialog::OnOK();}
3.在B对话框的OnPaint函数(这个函数需要自己添加WM_PAINT)中,添加如下代码:
CEnvirMonibeta1App *pApp=(CEnvirMonibeta1App *)AfxGetApp( );m_flow=pApp->myFlow;UpdateData(FALSE);
这个就能实现目标了~~
如果是父对话框和子对话框的传递,用下面的方法:
CParentDlg *parent=(CParentDlg*)GetParent();parent->GetDlgItem()->SetWindowText()
- 追问
能稍稍解释下么。。。光两条语句看不懂啊、、
- 回答
CParetDlg对应你的A对话框类。通过一个parent指针指向父对话框,然后就是获得B的内容,在A中显示
2 0
- MFC中两个对话框之间数据传递
- MFC中两个对话框之间数据传递
- MFC中两个对话框之间数据传递
- MFC对话框之间传递数据
- 怎样在MFC的两个对话框中相互传递数据
- MFC不同对话框之间的数据传递
- MFC中对话框之间消息传递
- 对话框之间传递数据
- WM_COPYDATA两个对话框之间传递数据的乱码问题
- MFC程序中不同的对话框类传递数据
- MFC 两个对话框直接的消息传递
- mfc对话框窗口之间变量的传递
- MFC对话框之间自定义消息传递
- MFC中实现父对话框与子对话框之间的参数传递,实例可测
- 两个apk之间传递数据
- 在MFC中实现对象之间数据的传递。
- ASP.net中怎么在两个页面之间传递数据
- Android中两个Activity之间数据传递及返回
- C++编程思想笔记
- NGUI(3.0.6) - sprite
- uva La 4255 Guess (拓扑排列)
- dirname和shell常用命令解读
- 我们能为SDN做什么?
- MFC中两个对话框之间数据传递
- 夺冠概率
- (36) WeakHashMap
- 安装和使用memcached
- ETl
- Mysql提示you need the SUPER privilege for this operation的解决办法
- TCP实现 文本文件上传
- STL源码解释-----sort()&&partial_sort()
- git的使用