关于MFC中全局变量的问题 你读不到是什么意思?拿不到你想要的值?DEBUG 看你的全局变量在什么时候初始化的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是我在主窗体里: theApp.integer=1; 然后打开子窗体,这时候子窗体里print出来的integer的值是0 ,关掉子窗体,再打开一遍,print出来integer就是1了子窗体里面就两个按钮,什么都没写 我用fm.DoModal(); 打开子窗体以后,子窗体读不到这个全局变量...=====================================================看样子你是想在新的对话框类里面读。在这个新的对话框的cpp文件开头加extern int xxxxx 把这个全局变量改成主窗口类的静态成员变量static int i;在子窗体类的函数中“主窗口类:: i”来使用该变量。 你把integer作为CXXXApp的成员变量了吧?因为我看你是theApp.integer这么调用的,可能你子窗口用的时候,主窗口没有执行到integer=1。或者换成全局的试试stdafx.h:extern int integer;主窗口.cpp:全局定义int integer=0;...需要改变integer值的地方(主窗口内任何位置)integer = 1;...使用integer的值(子窗口):这里有值了吧 fm.DoModal() 会卡住你那个界面线程的。这个就是模态窗体的特性,一定要处理完才可以。可以用非模态的,就能动态交互了 非模态可以用消息来传递。模态的那个DoModal结束也可以传。 看你的描述, 好像是说在某个地方修改了那个全局int后, 对话框中没有改变, 就好像读不到那个int, 重新打开对话框后就看到数据又改变后的了, 就好像又读取到了.我猜: 你传入对话框, 使用的是"值"传递, 导致对话框中得到的数据只是全局变量的副本, 所以不管你外面怎么改变那个全局变量, 那个副本是不会变的.建议: 1. 既然你都使用的全局变量, 为什么还要把它传入对话框呢? 全局变量,意思就是完全开放的, 到处都可以用. 对话框中直接用那个全局变量即可. 2. 实在要传入,也行, 那得使用指针, 或者引用, 不能传值. DirectSound 声卡录音问题。 【关于afxhtml的小问题?】 请教关于CPropertySheet和CpropertyPage的问题? 关于windows消息函数?现在知道消息函数的地址,怎么向这个函数的消息队列中发送消息? 图形保存 *****急!求LZIP算法的源代码,100分。有哪位能说说LZIP的特点也给分。 LoadLibrary() 问题 问个超级简单的问题:(关于C++PRIMER中的一段代码,看不懂) 怎样用Ado打开vfp的数据库??(急!) 谁能介绍用VC++开发机床数控程序的资料。谢谢 关于vc中mutex的问题 vc运行出现问题?
=====================================================
看样子你是想在新的对话框类里面读。在这个新的对话框的cpp文件开头加
extern int xxxxx
或者换成全局的试试
stdafx.h:extern int integer;
主窗口.cpp:全局定义int integer=0;
...
需要改变integer值的地方(主窗口内任何位置)integer = 1;
...
使用integer的值(子窗口):这里有值了吧
你传入对话框, 使用的是"值"传递, 导致对话框中得到的数据只是全局变量的副本, 所以不管你外面怎么改变那个全局变量, 那个副本是不会变的.建议:
1. 既然你都使用的全局变量, 为什么还要把它传入对话框呢? 全局变量,意思就是完全开放的, 到处都可以用. 对话框中直接用那个全局变量即可.
2. 实在要传入,也行, 那得使用指针, 或者引用, 不能传值.