100分求解:如何让一个对话框获取另一个对话框的值,我已经崩溃了!!!!!!!!!!

jianxinss 2009-10-16 02:02:30
我现在创建了两个对话框
先让一个对话框显示
在其中控件中给变量赋值
然后关闭
请问


用什么方法

可以使另一个对话框如何获取其变量的值

声明

这是两个不同的类

除了能做友元类其他都不能
我定义了消息还是不行啊!!!!!!!!!!!


我已经崩溃了

今天12点之前解决

我给你 100分!


...全文
283 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
积木成森 2012-08-14
  • 打赏
  • 举报
回复
1.extern C++App theApp 声明在两个空间类中 在c++App 中声明变量 CString a
2.控件类1 UpdateData(TRUE) theApp.a=m_edit1
3控件类2 m_edit1=theApp.a ;UpdateData(FALSE)
利用全局变量作为媒介
jianxinss 2009-10-16
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 aidy22 的回复:]
代码传一份到CSDN然后给出地址,这样大家比较容易帮你解决。

最好是利用系统的消息来获得,这个很简单的。
[/Quote][Quote=引用 20 楼 aidy22 的回复:]
代码传一份到CSDN然后给出地址,这样大家比较容易帮你解决。

最好是利用系统的消息来获得,这个很简单的。
[/Quote]
谢谢了各位!!


我晕 本来想插插入图片的

结果不行 我只能说一下了

我创建的是class CMyPropertySheet页面 一共有 3个class CMyPropertyPage
我现在page1中的edit编辑框中输入数字 count点击确认按钮

然后点到page2
使page2中的 edit编辑框可以获取 page1 中刚输入的数据
请问 确认按钮的函数怎写



void CMyPropertyPage1::OnButton1()

{
// TODO: Add your control notification handler code here

UpdateData();
int = GetDlgItemInt(IDC_nRtotal);
//下面的就不会了 我现在用的是文件读写 先写再读麻烦了




}
aidy22 2009-10-16
  • 打赏
  • 举报
回复
代码传一份到CSDN然后给出地址,这样大家比较容易帮你解决。

最好是利用系统的消息来获得,这个很简单的。
yuhudie203 2009-10-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 jianxinss 的回复:]
我现在创建了两个对话框
先让一个对话框显示
在其中控件中给变量赋值
然后关闭
请问

用什么方法
可以使另一个对话框如何获取其变量的值

[/Quote]
楼主 你可以在A对话框里面创建一个变量 m_value;
创建B对话框的时候得到A对话框的指针pA;
然后把你要赋的值赋值给pA->m_value;
这样的话即使你的B对话框关闭了 保存的pA->m_value也是存在的啊

B的创建和在A创建之后就可以了
不知道是不是你想要的结果
shakaqrj 2009-10-16
  • 打赏
  • 举报
回复
到底是什么啊?
这两个对话框是一个实例中的还是不同的?
ziplj 2009-10-16
  • 打赏
  • 举报
回复
C++里面 指针的功能是无限强大的
你在创建窗口的时候传递进去需要获取被关闭窗口的指针 要关闭的时候 将需要获取的值通过这个指针传递给另一个窗口 不就得了
luckyboy101 2009-10-16
  • 打赏
  • 举报
回复
建议贴代码
tiger波波 2009-10-16
  • 打赏
  • 举报
回复
你说的不清楚。
这2个对话框什么关系啊?

用全局变量算了,赋值后传给全局变量。
YeBinYe 2009-10-16
  • 打赏
  • 举报
回复
用命名管道试一下!
fishion 2009-10-16
  • 打赏
  • 举报
回复
CDialogA dlgA;
if( dlgA.DoModal() == IDOK )
{
CDialogB dlgB;
dlgB.m_strYourValue = dlgA.m_strYourValue;
}

dlgB是什么?创建了没有?或者说关联到一个已创建的窗口没有?
bragi523 2009-10-16
  • 打赏
  • 举报
回复
传个对象指针过去就可以啊
MoXiaoRab 2009-10-16
  • 打赏
  • 举报
回复
你获得它对话框的指针不就可以操作了么?
oyljerry 2009-10-16
  • 打赏
  • 举报
回复
做成对话框的成员变量,只要对话框对象不析构,它的成员变量的数据还是合法的,即使它对话框DoModal关闭了..
  • 打赏
  • 举报
回复
CDialog dlg1;

if(d1g1.DoModal()!=IDOK) return;

CDialog dlg2;

dlg2.m_XXX = dlg1.m_xxx;
或者
dlg2.SetXXX(dlg1.GetXXX());

难道我理解错了???????
o_yale_o 2009-10-16
  • 打赏
  • 举报
回复
这样:

CDialogA dlgA;
if( dlgA.DoModal() == IDOK )
{
CDialogB dlgB;
dlgB.m_strYourValue = dlgA.m_strYourValue;
}
xylicon 2009-10-16
  • 打赏
  • 举报
回复
关闭窗口了,对象也跟着析构,对象里的成员变量也就没了。
fishion 2009-10-16
  • 打赏
  • 举报
回复
你贴下你是用什么代码的
还没淹死的鱼 2009-10-16
  • 打赏
  • 举报
回复
不能关闭, 关闭了就没了!

把前面的窗口隐藏, 用一个全局窗口指针指向它,就想干什么干什么了
dirdirdir3 2009-10-16
  • 打赏
  • 举报
回复
最简单的办法就是搞一个tmp文件,然后前一个写入,后一个读出..............
或者用一个指定地址的内存存放,另一个读(这个需要选一个不常用的地址)........
jyh_baoding 2009-10-16
  • 打赏
  • 举报
回复
关闭 但不能析够,否则变量就没有了,然后获取对话框的指针,任意你操作
加载更多回复(3)

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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