MFC对话框传递参数

时间:2022-07-05 14:30:43
原来搞java的,现在windows程序设计课程作业,做一个通讯录的小程序,主对话框一有一个listbox,一个按钮.设计的是在主对话框上点击添加按钮后,弹出一个新的对话框2,新的对话框里面就是输入联系人信息的,有四个编辑框,一个确定按钮.请问如何才能在新的对话框2点击确定按钮后,将对话框2中的四个编辑框中输入的数据组成一条,添加到listbox的一个item中去.请问要如何实现?或者是如何在主对话框的确定按钮处理函数里获取那四个编辑框的值呢?谢谢!!!!!!

12 个解决方案

#1


每个控件都可以定义成对话框的一个成员变量,然后就可以直接操作了。找个例子看一下就知道,很简单

#2


在主对话框中定义4个变量,接收dialog2中的变量值,在dialog2点击确定的时候,将值赋给主对话框中的变量即可。没

#3


引用 2 楼 lilianjie001 的回复:
在主对话框中定义4个变量,接收dialog2中的变量值,在dialog2点击确定的时候,将值赋给主对话框中的变量即可。没

我现在完全搞不清楚MFC的组织结构..请问你说的是在主对话框的添加按钮的点击处理函数中定义四个变量,然后在对话框2中的确定按钮的点击处理函数中将四个编辑框的值赋给先前定义的四个变量?在对话框2中可以访问主对话框的成员变量么?

#4


一般的,将相关的要用到的数据定义为一个结构体,修改dialog2的构造函数,创建dialog2的对象的时候将该结构体作为参数传递过去即可。

#5


引用 3 楼 z46988646 的回复:
引用 2 楼 lilianjie001 的回复:在主对话框中定义4个变量,接收dialog2中的变量值,在dialog2点击确定的时候,将值赋给主对话框中的变量即可。没
我现在完全搞不清楚MFC的组织结构..请问你说的是在主对话框的添加按钮的点击处理函数中定义四个变量,然后在对话框2中的确定按钮的点击处理函数中将四个编辑框的值赋给先前定义的四个变量?在对话框2中可以访问……


不可以,要传消息之类的~

#6


引用 3 楼 z46988646 的回复:
引用 2 楼 lilianjie001 的回复:
在主对话框中定义4个变量,接收dialog2中的变量值,在dialog2点击确定的时候,将值赋给主对话框中的变量即可。没
我现在完全搞不清楚MFC的组织结构..请问你说的是在主对话框的添加按钮的点击处理函数中定义四个变量,然后在对话框2中的确定按钮的点击处理函数中将四个编辑框的值赋给先前定义的四个变量?在对话框2中可以访问主对话框的成员变量么?……

建议楼主先学习一下再来做。
加入说主对话框类为CDialog1,另外一个为CDialog2,在CDialog1中定义4个变量,变量为CString str1,str2,str3,str4;
在CDialog2中要包含CDialog1的头文件,即#iinclude "CDialog1.h",然后定义类对象CDialog1 dlg1;这样就可以访问str1,str2,str3,str4了。

#7


引用 6 楼 lilianjie001 的回复:
引用 3 楼 z46988646 的回复:引用 2 楼 lilianjie001 的回复:
在主对话框中定义4个变量,接收dialog2中的变量值,在dialog2点击确定的时候,将值赋给主对话框中的变量即可。没
我现在完全搞不清楚MFC的组织结构..请问你说的是在主对话框的添加按钮的点击处理函数中定义四个变量,然后在对话框2中的确定按钮的点击处理函数中将四个编辑框的……

谢谢.对于mfc的构架我确实没怎么学习.只是马上要交作业了,又不甘心copy一份,才开始自己琢磨.这一做感觉mfc构架真是很奇怪啊....

#8


那就做全局变量吧,不从MFC的角度去分析怎么传递,从C++语言的角度去解决变量共享

#9


引用 8 楼 mengfeihong 的回复:
那就做全局变量吧,不从MFC的角度去分析怎么传递,从C++语言的角度去解决变量共享

那请问基于对话框的mfc程序全局变量应该在哪个文件中定义?XXXDlg.h中么?用什么特殊格式么?谢谢

#10


xxx.cpp:CString text1;
xxx2.cpp:extern CString text1;

#11


首先建议为四个编辑框关联4个变量,为Listbox关联一变量。关联的变量根据你输入的内容确定(字符或者数字)为每个编辑框输入内容之后,upadate()。将输入的内容更新到关联的变量中。之后将四个编辑框关联的变量内容提取,然后操作赋予listbox关联的变量,然后再Update()就可以了。好久不用MFC了,反正原理就是这样。

#12


简单的方法是控件关联变量,右键控件-添加变量就行,有控件变量和值变量可选,看你要什么,调用UpdateData()就行

#1


每个控件都可以定义成对话框的一个成员变量,然后就可以直接操作了。找个例子看一下就知道,很简单

#2


在主对话框中定义4个变量,接收dialog2中的变量值,在dialog2点击确定的时候,将值赋给主对话框中的变量即可。没

#3


引用 2 楼 lilianjie001 的回复:
在主对话框中定义4个变量,接收dialog2中的变量值,在dialog2点击确定的时候,将值赋给主对话框中的变量即可。没

我现在完全搞不清楚MFC的组织结构..请问你说的是在主对话框的添加按钮的点击处理函数中定义四个变量,然后在对话框2中的确定按钮的点击处理函数中将四个编辑框的值赋给先前定义的四个变量?在对话框2中可以访问主对话框的成员变量么?

#4


一般的,将相关的要用到的数据定义为一个结构体,修改dialog2的构造函数,创建dialog2的对象的时候将该结构体作为参数传递过去即可。

#5


引用 3 楼 z46988646 的回复:
引用 2 楼 lilianjie001 的回复:在主对话框中定义4个变量,接收dialog2中的变量值,在dialog2点击确定的时候,将值赋给主对话框中的变量即可。没
我现在完全搞不清楚MFC的组织结构..请问你说的是在主对话框的添加按钮的点击处理函数中定义四个变量,然后在对话框2中的确定按钮的点击处理函数中将四个编辑框的值赋给先前定义的四个变量?在对话框2中可以访问……


不可以,要传消息之类的~

#6


引用 3 楼 z46988646 的回复:
引用 2 楼 lilianjie001 的回复:
在主对话框中定义4个变量,接收dialog2中的变量值,在dialog2点击确定的时候,将值赋给主对话框中的变量即可。没
我现在完全搞不清楚MFC的组织结构..请问你说的是在主对话框的添加按钮的点击处理函数中定义四个变量,然后在对话框2中的确定按钮的点击处理函数中将四个编辑框的值赋给先前定义的四个变量?在对话框2中可以访问主对话框的成员变量么?……

建议楼主先学习一下再来做。
加入说主对话框类为CDialog1,另外一个为CDialog2,在CDialog1中定义4个变量,变量为CString str1,str2,str3,str4;
在CDialog2中要包含CDialog1的头文件,即#iinclude "CDialog1.h",然后定义类对象CDialog1 dlg1;这样就可以访问str1,str2,str3,str4了。

#7


引用 6 楼 lilianjie001 的回复:
引用 3 楼 z46988646 的回复:引用 2 楼 lilianjie001 的回复:
在主对话框中定义4个变量,接收dialog2中的变量值,在dialog2点击确定的时候,将值赋给主对话框中的变量即可。没
我现在完全搞不清楚MFC的组织结构..请问你说的是在主对话框的添加按钮的点击处理函数中定义四个变量,然后在对话框2中的确定按钮的点击处理函数中将四个编辑框的……

谢谢.对于mfc的构架我确实没怎么学习.只是马上要交作业了,又不甘心copy一份,才开始自己琢磨.这一做感觉mfc构架真是很奇怪啊....

#8


那就做全局变量吧,不从MFC的角度去分析怎么传递,从C++语言的角度去解决变量共享

#9


引用 8 楼 mengfeihong 的回复:
那就做全局变量吧,不从MFC的角度去分析怎么传递,从C++语言的角度去解决变量共享

那请问基于对话框的mfc程序全局变量应该在哪个文件中定义?XXXDlg.h中么?用什么特殊格式么?谢谢

#10


xxx.cpp:CString text1;
xxx2.cpp:extern CString text1;

#11


首先建议为四个编辑框关联4个变量,为Listbox关联一变量。关联的变量根据你输入的内容确定(字符或者数字)为每个编辑框输入内容之后,upadate()。将输入的内容更新到关联的变量中。之后将四个编辑框关联的变量内容提取,然后操作赋予listbox关联的变量,然后再Update()就可以了。好久不用MFC了,反正原理就是这样。

#12


简单的方法是控件关联变量,右键控件-添加变量就行,有控件变量和值变量可选,看你要什么,调用UpdateData()就行