MFC一个类访问另一个类成员对象的成员变量值
MFC中一个类要访问另外一个类的的对象的成员变量值,这就需要获得原来那个类对象的指针,其实有好几种方法都可以实现。
比如维护一个单例模式、设置静态变量等等。我们这里举个列子,实现多个类之间的相互访问。
一、示例:创建MFC对话框,实现对个对话框之间数据访问
- 我们创建一个MFC对话框应用程序,命名为Visit工程.
- 对话框本身有一个主界面(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一个类访问另一个类成员对象的成员变量值的更多相关文章
- MFC 一个类訪问还有一个类成员对象的成员变量值
作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/35263857 MFC中一个类要訪问另外一个类的的对象的成员变量值,这就须要获得 ...
- C++ - 派生类访问模板基类(templatized base class)命名
派生类访问模板基类(templatized base class)命名 本文地址: http://blog.csdn.net/caroline_wendy/article/details/239936 ...
- oracle分配权限:一个用户访问另一个用户的表
相当于alias(别名),比如把user1.table1在user2中建一个同义词table1 create synonym table1 for user1.table1; 这样当你在user2中查 ...
- c# 从一个服务器 访问另外一个服务器上的文件
页面调用 function fnOpen(path) { window.open("~/FileHelp.ashx? url="); //window.open(url); } 后 ...
- 一个合约访问另一个合约中的mapping
参考链接:https://ethereum.stackexchange.com/questions/13616/accessing-a-public-mapping-within-a-contract ...
- Struts2系列笔记(4)---Ation类访问servlet
Ation类访问servlet Ation类有三种方式servlet: (1)间接的方式访问Servlet API ---使用ActionContext对象 (2) 实现接口,访问Action时完 ...
- Struts2框架(4)---Action类访问servlet
Action类访问servlet Action类有三种方式servlet: (1)间接的方式访问Servlet API ---使用ActionContext对象 (2) 实现接口,访问Action ...
- C++嵌套类及对外围类成员变量的访问
C++嵌套类及对外围类成员变量的访问 在一个类中定义的类称为嵌套类,定义嵌套类的类称为外围类. 定义嵌套类的目的在于隐藏类名,减少全局的标识符,从而限制用户能否使用该类建立对象.这样可以提高类的抽象能 ...
- 如何使用OPENQUERY访问另一个SQL Server
原文:如何使用OPENQUERY访问另一个SQL Server 在项目中,经常会遇到一个数据库访问另一个数据库,[CNVFERPDB]为服务器名,[CE3]为库名 SELECT Dtl.* FROM ...
随机推荐
- Configuring Locales
原文地址:http://people.debian.org/~schultmc/locales.html The Easy Way Install debconf (i.e. runapt-get u ...
- Android布局中涉及的一些属性
Android:gravity属性 线性布局常见的就是利用LinearLayout进行布局,其中有个比较重要的属性就是android:gravity,在官方文档中是这么描述这个属性的:指定一个元素怎么 ...
- MongoDB中的字段类型Id
众所周知,在向MongoDB的集合中添加一条记录时,系统会自动增加一个字段名为"_id",类型为ObjectId的字段,其值为24位字符串,可以使用此值作为记录的唯一标识. 项目中 ...
- [游戏模版11] Win32 动画 时间消息
>_<:This time we will study a new way to operate your picture.That is running your picture by ...
- Linux驱动学习步骤(转载)
1. 学会写简单的makefile 2. 编一应用程序,可以用makefile跑起来 3. 学会写驱动的makefile 4. 写一简单char驱动,makefile编译通过,可以insmod, ls ...
- Atitit.信息论原理概论attilax总结
Atitit.信息论原理概论attilax总结 1. <信息论基础(原书第2版)>((美)科弗(Cover...)[简介_书评_在线阅读] - 当当图书.html1 2. <信息论- ...
- Atitit.常用的gc算法
Atitit.常用的gc算法 1.1. 记-清除算法1 1.2. 复制算法1 1.3. 标记-整理算法2 1.4. 分代收集算法2 1.1. 记-清除算法 最基础的收集算法,算法分为标记和清除两个阶段 ...
- Django模板系统
创建模板对象Template类在django.template模板中 // 用django-admin.py startproject 命令创建一个项目目录django-admin.py startp ...
- DOM基本概念和操作
1.基本概念 DOM是文档对象模型(TEXT),对象是指文档中的每一个元素. 2.Window对象操作 打开方式: _blank 在新窗口还是自身窗口. Window.open 也有返回值,返回值为 ...
- UItableView嵌套UICollectionView
首先我们需要继承一下UITableView并且遵守<UITableViewDelegate,UITableViewDataSource,UICollectionViewDataSource,UI ...