首页 > 技术文章 > 在MFC中使用一个单独的类实现数据在各个类之间的传递

wenluderen 2015-01-22 16:32 原文

第一步:使用VS2010创建一个基于MFC的单文档程序,然后  编译 运行 确定没有问题。


第二步:添加一个名叫CGszCommonData  类。


 第三步:在应用程序类的头文件里 添加#include "GszCommonData.h"

// TestGsz.h : TestGsz 应用程序的主头文件
//
#pragma once

#ifndef __AFXWIN_H__
	#error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件"
#endif

#include "resource.h"       // 主符号
#include "GszCommonData.h"

// CTestGszApp:
// 有关此类的实现,请参阅 TestGsz.cpp
//



第三步:

在类CGszCommonData添加一些变量,这些变量起到了不同类之间传递数据的作用。

 

//CGszCommonData的头文件应包含在应用程序类的头文件中,这样在其它类中引用CGszCommonData类时就不需要再包含了。
#pragma once
class CGszCommonData
{
public:
	CGszCommonData(void);
	~CGszCommonData(void);


//声明一些全局的变量或者是函数
public:
	static int xGsz; //定义性声明一个全局 整型变量 
	static int fGsz(int y); //声明一个全局函数
};


第四步:在CGszCommonData的实现文件里  给变量赋值 或是 给函数下定义

#include "StdAfx.h"
#include "GszCommonData.h"

///变量的赋值部分
int CGszCommonData::xGsz = 11; //初始化全局变量

///函数的定义部分 
CGszCommonData::CGszCommonData(void)
{
}

CGszCommonData::~CGszCommonData(void)
{
}
int CGszCommonData::fGsz(int y) //全局函数,这里不要再加static
{
	y++;
	return y;
}



第五步:在那个希望可以交互数据的那个类的头文件里面 包含全局数据交换类的头文件。

此处我选择的 是应用程序类的的头文件里面

然后 创建一个变量 ,用于接收 GszCommonData里面的数据

public:
	int GszaSend;

第六步:在应用程序类实现文件的初始化函数里面添加 下面程序


m_pMainWnd->ShowWindow(SW_SHOW);
	m_pMainWnd->UpdateWindow();
	// 仅当具有后缀时才调用 DragAcceptFiles
	//  在 SDI 应用程序中,这应在 ProcessShellCommand 之后发生

	GszaSend=CGszCommonData::xGsz;
	GszaSend=GszaSend+1;

	return TRUE;



第七步: 运行监控效果。




全套源代码:http://pan.baidu.com/s/1pJDiT0R

IDE:VS2010

系统:Windows7 64位

 




 

推荐阅读