MFC和很多C++书上说的全局变量不一样。不是仅在写在函数外就可以了,MFC的运行机制完全不一样。我对MFC的机理还没做到完全的理解,而现在两个窗体之间需要有数据“通信”,也就是需要一个公共变量来做媒介,时间十分紧张,容不得我慢慢的理解然后解决。
那么我只有有现有的知识来解决了,ok废话少说,下面开始:
全局变量的特点就是在程序的运行期间都存在,而记得在看候杰书上曾经提到:
MFC有一个CXXApp(XX为工程的名字,如我这个就是CRSApp)的类,还有一个这个类的对象,然后好像在“MFC六大关键技术仿真”中提到有一个
AfxGetApp()这个全局函数可以得到当前这个对象的指针,那么只有在App类上下点功夫了。
在CRSApp加上一个类的成员变量我这里用PubCurID做例子(RS就是工程的名字,具体情况不一样。)。
然后在使用的地方
使用这个相应类的指针就接收就可以了。
解决感受:
这个解决方案不是很好,但是的确有效,缺点明显在CRSApp的成员中加上了没什么关系的变量,可能回影响程序的直观行,虽然也考虑过定义一个H文件然后在用和定义的地方都include进去。而然,事情远远超过我的预料,这个办法不是那么有用:extern 到处用,还是到处抱错,我意识道可能会导致全局的问题,继而程序不可维护因此放弃。“真理是有条件的”恐怕说的就是这么回事吧。