iCAx开思工具箱

标题: 【求助】请各位看看如何访问这个变量 [打印本页]

作者: skywood    时间: 2004-12-2 11:14
标题: 【求助】请各位看看如何访问这个变量
为了简单起见,问题的描述作了简化。这个演示程序使用MFC,不涉及到UG/OPEN。
  
第一步:打开主对话框。
作者: skywood    时间: 2004-12-2 11:15
第二步:按下按钮“A”,打开模式对话框A。
  
并且在对话框A中输入数值。
作者: skywood    时间: 2004-12-2 11:17
第三步:关闭对话框A。按下按钮“B”,打开模式对话框B。
作者: skywood    时间: 2004-12-2 11:22
现在,对话框B想知道对话框A中输入的数据是多少。
  
进一步问,对话框B如何才能能访问到对话框A中的变量?
  
下面是源代码:
作者: fourwood    时间: 2004-12-3 10:15
方法应该比较多
1、如果数据量比较多,你可以创建临时文件来进行中转;
2、你可以在关闭A对话框之前,设个变量保存A对话框的数据,然后在B对话框打开后赋给它;
作者: skywood    时间: 2004-12-3 10:23
"2、你可以在关闭A对话框之前,设个变量保存A对话框的数据,然后在B对话框打开后赋给它;"
  
请问,这个保存A对话框数据的变量属于那种类型?具体地说,是属于ask类的变量,还是A类或B类的变量?请给出说明。
  
其他的人呢?mizzle呢?键盘呢?快来帮忙啊!
作者: suye007    时间: 2004-12-3 15:22
定义个全局变量不就行了......
作者: 深夜摔键盘    时间: 2004-12-3 20:52
用classwizard给A中的EDIT控件加个变量,利用MFC的DDX机制,通过全局变量传给B,只是要注意DDX的发生时刻。'
  
见附件。
作者: skywood    时间: 2004-12-3 21:59
谢谢以上三位,特别是键盘。
  
不过在键盘的程序中,我个人感觉var1仍只是A类中的局部变量,只不过在B类中被显式申明为外部变量而已。不知道这个想法对不对。
作者: skywood    时间: 2004-12-3 22:04
我错了,var1确实是全局变量。
作者: 深夜摔键盘    时间: 2004-12-4 08:44
看看C语言中变量的生存期就知道了。
  
直白的说,只要 你在任何{ 。。。}之外定义的变量都是全局变量。原则上来讲,全局变量可以在任意程序文件中。但MFC下,可能stdafx.h不可以。
  
在其它程序文件中如果要用全局变量extern就可以。




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3