12 12
发新话题
打印

[求助] 请教vc问题

本主题由 System 于 2008-6-1 05:00 解除限时高亮

请教vc问题

本人汽车学院大四学生,最近用vc做设计,想请教一下相关问题。
  我在用MFC exe做一个有许多参数的计算程序,用的是向导,在第一页中的相关数值在整个程序中都要用到,问题就来了。这种是不是要用全局变量,怎么定义,引用?

TOP

C++中可以创建一个对象进行传参,不一定非要全局,如果非要全局的话,在你的主文件的CPP里面定义

[ 本帖最后由 tot 于 2008-5-22 17:34 编辑 ]
如果不把钱花在教育上,那么就一定会把它花在监狱上。
不修德而读书,甚于给强盗一把刀。

TOP

全局变量在StdAfx.h里定义 每个类都可以引用
这个头文件必包含的
可以省去再加头文件的麻烦
其实馒头是万能的,饿了就可以吃。想吃饼,就把馒头拍扁;想吃面条,就把馒头用梳子梳;想吃汉堡,就把馒头切开夹菜吃……

TOP

我看到过这种在StdAfc里定义的方法,不过听说不是很理想,因为许多数据的关系都是网状的,需要来回用,而且很多,估计有20左右,会不会有影响?

TOP

回复 1# yuguanlan 的帖子

类的全局变量定义:在工作空间,选中你想添加变量的类,点击鼠标右键,选择Add Member Vairable...弹出添加变量的对话框,最下面选择public就OK.

整个应用程序的全局变量定义:直接在.cpp源文件的开头定义。

TOP

回复 2# tot 的帖子

传参感觉是个好主意,我把问题说得详细点,请帮忙解答一下。
我用的是Single Document,里边建立了一些Page,用SetWizardMode()和DoModal()做成向导一步步计算,每一个Page都定义了一个类,用CProp1,Cprop2,Cprop3……表示,每个类里面都要输入一些数据,做一些相关计算,编辑框我都用控件关联了。问题是我在Cprop2中的计算需要Cprop1中计算的相关数据,这种情况怎么办?怎样把Cprop1中的数据传递到Cprop2,Cprop3中进行计算?

TOP

非常着急,请说得详细点,我学这东西才1星期,不胜感激!谢谢各位了。

TOP

在面向对象的程序设计中全局变量是很不可取的。
要想在VC中实现全局变量的功能可以考虑在CAPP类中定义变量
然后在程序的任何位置GetApp()获得应用程序类进行读写

TOP

GetApp()?我查了MSDN,没这个函数啊,怎么回事?

TOP

不好意思,记错了
应该是全局的函数AfxGetApp();
举个例子:你的工程名为test
就在你的CTestApp类里定义一个变量x
然后在其他类里这样调用:(比如在View类里调用吧)
void CTestView::xyz()
{
CTestApp *app = (CTestApp *)AfxGetApp(); //生成指向应用程序类的指针
app->x = 0; //访问变量x
}

TOP

 12 12
发新话题