请问高手分析这句MFC代码:AfxGetApp()-> m_pMainWnd,我知道这句代码的作用是获取窗体指针
我就是想知道这句为什么要这么写1:AfxGetApp()这个返回的是指针后面为什么用->,而且m_pMainWnd这个好像也是指针,两个是这么个关系啊?我刚开始学,看的一...
我就是想知道这句为什么要这么写 1:AfxGetApp()这个返回的是指针后面为什么用->,而且m_pMainWnd这个好像也是指针,两个是这么个关系啊?我刚开始学,看的一头雾水,请高手分析下,谢谢
展开
展开全部
AfxGetApp()这是个函数,其返回值是当前程序cpp类的指针,所以后面要用指向操作符“->”,m_pMainWnd是当前程序cpp类的一个成员变量,它代表了当前程序的主窗口的指针。
追问
m_pMainWnd这个也是指针啊、那为什么还要用AfxGetApp()这是个函数返回来的指针去指向它啊?请再帮我解释一下,谢谢你了
追答
AfxGetApp()获取的是应用程序类的指针,比如,你利用vs2010或vc6.0自动生成一个mfc工程,假设名称为Pro,若是基于单文档的程序,里面一定有CPro、CProDoc、CProView还有CMainFrame这几个类,其中,CPro代表了这个应用程序运行实例的对象,该类里面有很多成员变量,其中有不少代表窗口的变量,而m_pMainWnd正是其中的一个变量,它代表了程序的主体窗口,且它是属于CMainFrame类的。
微软的MFC提供的应用程序设计理念就是文档、框架、视图 结构,这三个结构是由三个类来体现的,分别是上面提到的CProDoc(文档,代表程序的数据)、CMainFrame(框架,代表应用程序界面的框架窗口)、CProView(视图,代表应用程序的客户区界面部分),MFC中基于单文档或多文档的应用程序,都是基于这个结构来实现的。而者三个结构成员是由应用程序实例的类来统一管理的,这就是上面所说的CPro类。AfxGetCpp()正是返回了这个类的指针。
虽然m_pMainWnd和AfxGetCpp()的返回值都是指针,但他们的指向不同。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询