在MFC中如何实现两个对话框的数据交换

feixuedudiao 2010-12-17 08:47:19

有哪位高手知道如何实现,谢谢。


在MFC中,当建立两个对话框后,如何实现两个对话框的交换,具体是用一个对话框的按钮来控制另一个对话框,并在另一个对话框实现数据的现实。


...全文
500 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010385269 2013-05-11
  • 打赏
  • 举报
回复
各位,有没有整个程序啊,还是不太能理解,谢谢
feixuedudiao 2010-12-20
  • 打赏
  • 举报
回复
谢谢上面各位楼主。
luciferisnotsatan 2010-12-18
  • 打赏
  • 举报
回复
加个变量当中转就是了
hohaixrh 2010-12-18
  • 打赏
  • 举报
回复
如果是两个应用程序的话,就是进程间通信了,可以用windows进程间通信的机制来实现,如果是一个应用程序的话,可以在一个对话框类中保存另一个对话框的句柄,这样就可以操作另一个对话框的内容了
jebe7282 2010-12-17
  • 打赏
  • 举报
回复
CreateFileMapping
MapViewOfFile
也可以。。呵呵。
koolxiaoyuer 2010-12-17
  • 打赏
  • 举报
回复

//Dialog1.h
#include Dialog2.h
class Dialog1 //对话框1把a数据在点按钮时传给2对话框
{
public:
int m_a;
Dialog2 dlg2;
afx_msg void OnBnClickbutun(); //在资源视图里双击按钮自动生成的按钮响应函数
}
//Dialog1.cpp
void Dialog1::OnBnClickbutun()
{
m_a=5; //假设你要把这个数据传给对话框2
dlg2.DoModal(); //以模态的方式打开对话框2,当然这里你可选择别的方式打开
dlg2.setA(m_a); //把值传给对话框2,setA是自己写的,对话框2的成员函数
}

//Dialog2.h
class Dialog2
{
public:
int m_A;
void setA(int i);
void putintDabase(); //可以是传入数据库操作,这里的函数逻辑按自己意愿填写
}
//Dialog2.cpp
void Dialog2::setA(int i)
{
m_A=i;
putintDabase()
}
void Dialog2::putintDabase()
{
//具体的逻辑处理实现,伪代码:insert m_A into database
}

这是最容易理解的一种方式:一个对话框是另一个的成员变量
ningto.com 2010-12-17
  • 打赏
  • 举报
回复
在其中一个对话框中new一个另外一个对话框的实例, 就可以用到这个对话框里的成员
hslinux 2010-12-17
  • 打赏
  • 举报
回复
WM_COPYDATA

其实方法很多的,就看哪个比较适合你的应用。
hastings 2010-12-17
  • 打赏
  • 举报
回复
添加成员变量

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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