这是本人在学习MFC的过程中整理的,其实就是一小篇学习笔记,算不得什么文章,共享出来只是希望能够给那些MFC初学者一点点帮助,并且希望得到老鸟们的指正。呵呵,闲话不说进入正文。
基于文档-视图结构的应用程序,可以将数据从用户对数据的观察中分离起来。在此类应用程序中,数据一般放在文档类中,而应用的显示一般由视图视图类负责。以显示图像为例,图像的数据存放在文档类中,要在试图类中显示图像则要获得文档类中的数据。如果利用AppWizard创建的应用程序,在视图类中有一个GetDocument()的成员函数可以获得文档类的指针,利用文档类的指针就可以获得文档类的数据。但在MFC程序中类之间变量的互相访问并不仅限于此,以多文档界面应用程序为例,程序中主要包含试图类 、文档类、 MDI子框架类 、MDI父框架类和应用类。另外还有用户生成的其他对话框类等等。如何实现这些类之间的变量的互相访问,是MFC编程初学者应该要搞懂的问题,也是本文要讨论的问题。
一般来说,要想在一个类中访问到另外一个类中的变量(Public),最容易想到的就是得到想要访问类的指针。想要访问类的指针的获取一般采用的方法是利用特定的全局API函数和各个类(访问类)提供的成员函数。在获取特定类指针的函数中最主要的两个函数就是:获取应用类指针的AfxGetApp()函数和获取主框架类指针的AfxGetMainWnd()函数。只要灵活的应用好这两个函数,遍基本上就可以实现类之间变量的相互访问。具体讨论如下:
1.主框架类访问其他类变量的方法
可以用函数AfxGetApp()获取应用类的指针,代码如下:
CClass***App *m_pApp=(CClass***App *)AfxGetApp();
为了获取当前活动的子框架类的指针,主框架类主要提供了两个成员函数:MDIGet