MFC 一个类访问另一个类成员对象的成员变量值

作者:卿笃军

原文地址:http://blog.csdn.net/qingdujun/article/details/35263857

MFC中一个类要访问另外一个类的的对象的成员变量值,这就需要获得原来那个类对象的指针,其实有好几种方法都可以实现。

比如维护一个单例模式、设置静态变量等等。我们这里举个列子,实现多个类之间的相互访问。

一、示例:创建MFC对话框,实现对个对话框之间数据访问

  1. 我们创建一个MFC对话框应用程序,命名为Visit工程.
  2. 对话框本身有一个主界面(CVisitDlg对话框),那我们再添加一个新界面CXXXDlg.

二、在主界面CVisitDlg类的头文件中,添加一个static CVisitDlg *s_pDialog;指针(注:添加为共有类型的)

由于这个指针式静态的,我们需要在类外初始化,那么我们在CVisitDlg .cpp文件中,写上一行初始化代码,直接初始化为空,如下:

CVisitDlg *CVisitDlg::s_pDialog = NULL; //(注意要写在类外,不要写在类实现函数里面)。

三、然后需要在CVisitDlg 主对话框生成的时候,给这个指针赋值为主对话框指针。

那么,我们可以在CVisitDlg 类的构造函数或者OnInitDialog()函数里面写上如下一句代码:

s_pDialog = this;

好了,现在我们只要在其他的类里面获得这个静态指针,就可以访问这个类里面的所有数据了~~~~

四、获得静态指针

假设,我们想在CXXXDlg类中访问CVisitDlg类的数据,如下代码轻轻松松搞定:

CVisitDlg *pDia = CVisitDlg::s_pDialog;

MFC 一个类访问另一个类成员对象的成员变量值,布布扣,bubuko.com

时间: 2024-10-03 20:30:41

MFC 一个类访问另一个类成员对象的成员变量值的相关文章

MFC 一个类訪问还有一个类成员对象的成员变量值

作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/35263857 MFC中一个类要訪问另外一个类的的对象的成员变量值,这就须要获得原来那个类对象的指针,事实上有好几种方法都能够实现. 比方维护一个单例模式.设置静态变量等等.我们这里举个列子,实现多个类之间的相互訪问. 一.演示样例:创建MFC对话框,实现对个对话框之间数据訪问 我们创建一个MFC对话框应用程序,命名为Visitproject. 对话框本身有一个主界面(CVis

如何不利用一个额外的变量来达到交换两个变量值的目的-------位上的异或运算

问题:一般我们要交换两个变量的值,多会采取一个额外变量来实现,比如temp=a,a=b,b=temp,现在我们能不利用temp来实现交换a,b两个变量值的目的吗? 解决方案:^异或运算符,而且我们会发现a^a=0,还有0^a=a,依据这两条理论,我们可以实现之前提出的问题. 代码如下: #include<stdio.h>void inplace_swap(int * x,int * y){    *y=*x^*y;    *x=*x^*y;    *y=*y^*x;}int main(){  

对实体类的所有String类型的成员变量值trim

使用反射,可以对实体类中的所有String类型的成员变量的值执行trim操作 (1)trim /***  * 对object中的所有成员变量的值,执行trim操作<br>  * 即去掉首尾的空格  * @param obj  * @throws SecurityException  * @throws NoSuchFieldException  * @throws IllegalArgumentException  * @throws IllegalAccessException  */ pu

oracle分配权限:一个用户访问另一个用户的表

相当于alias(别名),比如把user1.table1在user2中建一个同义词table1 create synonym table1 for user1.table1; 这样当你在user2中查select * from table1时就相当于查select * from user1.table1; //批量生成创建同义词select 'create synonym '||object_name||' for jys.'||object_name||';' from dba_objects

C#1(.net和C#的关系、VS与.net的对应关系、VS2012常用的几种应用程序、C#定义一个类的方法、类页面内容的解释、定义Person的类、调用Person类的方法、命名规范、数值类型)

1..net和C#的关系 .net是一个开发平台,C#是应用在.net平台上的一种语言.   2.VS与.net的对应关系  3.VS2012常用的几种应用程序 第一种是Windows窗体应用程序,也即是我们常用的C/S端的应用软件: 第二种是控制台应用程序,主要是用来学习调试C#代码的(老师上课应用的模式): 第三种是空Web应用程序,建立空的网页模式,B/S模式: 第四种是Web 窗体应用程序,建立后会生成一些常用的网页组件和功能,例如JS.image等,也是B/S模式. 4.C#定义一个类

6.18 (继承+(四类访问修饰符+程序集+静态方法))提纲

继承: 一.什么是继承 概念:父亲有的东西,并且允许继承,所有孩子就都会有 一个父类可以拥有多个子类 一个子类只能拥有一个父类 二.父子之间的转换 子类可以转换成父类,这个父类只能转换成之前的子类 子类之间不可相互转换 ----------------------------------------------------------------------------- 1.访问修饰符: 对于跨类访问的一个权限限制 public : 公共的,引用命名空间即可随意访问,最高访问权限. priva

VC++编程之第三课笔记——MFC窗口创建过程以及窗口类的封装

第三课 MFC窗口创建过程以及窗口类的封装 MFC的每一个类都是以C开头的,表明这是一个Class. 工程包含(单文档) 创建工程名为aaa的工程(单文档)时,在类视图中可看见五个类: CAboutDlg CMainFrame CAaaApp CAaaDoc CAaaView 其中: 类CAboutDlg继承自CDialog类,对话框的类 类CMainFrame继承自CFrameWnd类,创建整个程序的框架窗口 类CAaaApp继承自CWinApp类,创建唯一的应用程序对象 类CAaaDoc继承

如何使用OPENQUERY访问另一个SQL Server

原文:如何使用OPENQUERY访问另一个SQL Server 在项目中,经常会遇到一个数据库访问另一个数据库,[CNVFERPDB]为服务器名,[CE3]为库名 1 SELECT Dtl.* 2 FROM CNVFERPDB. CE3.ce3.ZTLE0125 Dtl 3 INNER JOIN CNVFERPDB.CE3.ce3.ZTLE0124 Mst 4 ON Dtl.RECVSUPPNO = Mst.RECVSUPPNO AND Dtl.MANDT = Mst.MANDT 5 WHERE

Java中Class和单例类的作用与类成员的理解

Java中Class类的作用与深入理解 在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识.这个信息跟踪着每个对象所属的类.JVM利用运行时信息选择相应的方法执行.而保存这些信息的类称为Class.可能容易产生混淆,容易想到class.不过二者没什么关系,class不过是描述类的一个关键字.而Class却是保存着运行时信息的类. 它能做什么?Class类可以帮助我们在程序运行时分析类,说白了就是获取类中的值.可能瞬间就想到了反射,没错!Class一般就是和反射配套使