六个关键仿真,在去年的某个时候研究过一段时间,并且对这个仿真做了自己的二次仿真,并且做了笔记,可遗憾的是写的代码没有保存下来。
接触的所谓框架不多,但是说实在话,MFC一开始接触真的很难!这次给我极大的教训,就是研究完一个东西,一定要详细的记录下来,包括流程和完整代码!头文件MFC.H
#include <iostream.h> class CObject/*根类*/ { public: CObject() {cout << "CObject 构造 \n";} ~CObject() {cout << "CObject 析构 \n";} }; class CCmdTarget : public CObject /*二级类*/ { public: CCmdTarget() {cout << "CCmdTarget 构造 \n";} ~CCmdTarget() {cout << "CCmdTarget 析构 \n";} }; class CWinThread : public CCmdTarget { public: CWinThread() {cout << "CWinThread 构造 \n";} ~CWinThread() {cout << "CWinThread 析构 \n";} }; class CWinApp : public CWinThread { public: CWinApp* m_pCurrentWinApp; /*存放当前对象地址*/ public: CWinApp() { cout << "CWinApp 构造 \n"; m_pCurrentWinApp = this; } ~CWinApp() {cout << "CWinApp 析构 \n";} }; class CDocument : public CCmdTarget { public: CDocument() {cout << "CDocument 构造 \n";} ~CDocument() {cout << "CDocument 析构 \n";} }; class CWnd : public CCmdTarget /*窗口类*/ { public: CWnd() {cout << "CWnd 构造 \n";} ~CWnd() {cout << "CWnd 析构 \n";} }; class CFrameWnd : public CWnd { public: CFrameWnd() {cout << "CFrameWnd 构造 \n";} ~CFrameWnd() {cout << "CFrameWnd 析构 \n";} }; class CView : public CWnd { public: CView() {cout << "CView 构造 \n";} ~CView() {cout << "CView 析构 \n";} }; CWinApp* AfxGetApp(); /*全局函数*/
头文件my.H
#include <iostream.h> #include "mfc.h" class CMyWinApp : public CWinApp { public: CMyWinApp() {cout << "CMyWinApp 构造 \n";} ~CMyWinApp() {cout << "CMyWinApp 析构 \n";} }; class CMyFrameWnd : public CFrameWnd { public: CMyFrameWnd() {cout << "CMyFrameWnd 构造 \n";} ~CMyFrameWnd() {cout << "CMyFrameWnd 析构 \n";} };
MFC.cpp
#include "my.h" extern CMyWinApp theApp; CWinApp* AfxGetApp() /*全局函数AfxGetApp,返回对象地址*/ { return theApp.m_pCurrentWinApp; }
MY.CPP
#include "my.h" CMyWinApp theApp;/*起点->全局对象*/ void main() { CWinApp* pApp = AfxGetApp();/*返回对象地址*/ }
原文:http://www.cnblogs.com/tinaluo/p/5350058.html