提供两种方案, 1 如果新建的对话框是主窗口的子窗体可以这样.将这五个变量定义为Public的,然后在子对话框中this->GetParent()->mNumber; mNumber为其中一个变量. 2 在新建的对话框类中提供一个Public的函数,在主程序中调用,将这五个变量值传递过去. 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 可以有两种方法,假设你的主窗口对话框类为CMainWnd,其中一个变量为str,新建的对话框类为CNewWnd: 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 在对话框类里重载构造函数 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 我习惯使用火驹的方法。封装性较好,个人感觉。 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 Dialog1的类名是CDialog1, 头文件是dialog1.h。里有成员变量CString str1, str2; Dialog2的类名是CDialog2, 头文件是dialog2.h。里有成员变量CString str11, str22; 要想将Dialog1里的变量传递给Dialog2里的变量,可以用这种方法:在类 CDialog1 的头文件里,引入Dialog2的头文件: #include "dialog2.h" 在类 CDialog1 的定义里声明Dialog2的对象: CDialog2 m_Dialog2; 在类 CDialog1 的cpp文件里的初始化函数里(其实应该在你需要的时候进行如下操作),UpdateData(TRUE); str1.Format("xixi");str2.Format("haha");m_Dialog2.str11 = str1; m_Dialog2.str22 = str2;UpdateData(FALSE);这样,就把值已经传给Dialog2了!要是想在Dialog2里使用str11,str22的时候,加上UpdateData(TRUE); 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 vc里面怎样实现对话框之间传递变量的值(原)对话框1 CDlg1 该对话框 有个编辑框 Ceidt m1_text;对话框2 CDlg2 该对话框类 有个成员变量 Cstring m2_text 还有一个按钮Button2用于打开对话框1过程描述:打开对话框2,单击按钮Button2打开对话框1,给 m1_text赋值,关闭对话框1,将m1_text的值传给m2_text.实现:Dlg2.cpp CString m2_text; CDlg1 m_logindlg; if(m_logindlg.DoModal()==ID_OK) { m2_text=m_logindlg.m1_text; } 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 crazyboy (ppp)于2005年05月25日02:26:37 星期三) 想把在主窗口得到的一个值例如 dcount=100;在一个对话框打开时间去的这个值 问题点数:50、回复次数:19 1 楼softsprite(软件精灵)回复于 2000-08-30 09:06:00 得分 0 如果需要传递的变量不多的话,在对话框类中建立相应的成员变量: 2 楼luxes()回复于 2000-08-30 09:09:00 得分 10 把这个值定义为主窗口的public成员变量:m_dcount, 3 楼skyrain(skyrain)回复于 2000-08-30 09:10:00 得分 0 这儿的dcount 在哪儿定义?CMyDialog myDialog(this);应该写哪儿? 4 楼Tiangz()回复于 2000-08-30 09:11:00 得分 0 在Dialog的.h文件中包含MainFrm.h,若dcount是一个public成员,则可以 5 楼softsprite(软件精灵)回复于 2000-08-30 09:25:00 得分 0 dcount是主窗口中的变量,是你自己提出来的呀! 6 楼skyrain(skyrain)回复于 2000-08-30 10:41:00 得分 0 我在MainFrm.h中加入public变量dcount,在对话框的MyDialog.h中加入#include "mainfrm.h" 7 楼magicwizard(巫师)回复于 2000-08-30 10:44:00 得分 0 softsprite在第一个回复里说得很详细,仔细看看分析一下. 8 楼skyrain(skyrain)回复于 2000-08-30 10:54:00 得分 0 我用MFC建立了一个单文档程序data,自己添加了一个对话框类,叫mydialog 9 楼a2000(夜雨)回复于 2000-08-30 11:08:00 得分 0 在CMyApp中建一个变量dcount;然后在CMyDialog 中用AfxGetApp()->dcount.就行了. 10 楼skyrain(skyrain)回复于 2000-08-30 11:11:00 得分 0 CMyApp是自定义的类吗 11 楼Holly()回复于 2000-08-30 11:18:00 得分 20 所有的AfxGetApp()或AfxGetMainWnd()的到的指针都需要强制转换 12 楼Holly()回复于 2000-08-30 11:23:00 得分 0 另外,尽量采用softsprite在第一贴的方法,直接取变量的方法使代码的控制混乱,是不好的编码风格,应当避免,养成习惯就不好了? 13 楼skyrain(skyrain)回复于 2000-08-30 11:28:00 得分 0 softsprite的方法我看不懂,m_count在哪定义的, 14 楼softsprite(软件精灵)回复于 2000-08-30 11:40:00 得分 20 在MyDialog.h中定义:int m_dcount; 15 楼xiaoyuer(我是一只虫)回复于 2000-08-30 12:09:00 得分 0 只要取得窗口类的指针即可! 16 楼hnalbert(再战)回复于 2000-08-30 12:13:00 得分 0 You can do just as what softsprite told you. 17 楼iforever(iforever)回复于 2000-09-01 14:42:00 得分 0 听HOLLY的
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 用资源分别建立两个对话框.两对话框无任何联系. 一句话
回复于:2006-05-26 10:17:51 方法一:在第二个对话框中调用第一个对话框 #5楼 得分:0回复于:2006-05-26 11:37:21 在需要实现该功能的地方调用: |
|