深入浅出MFC---Frame2
2012-12-31 15:41
239 查看
#include <stdio.h> class CObject { public: CObject() { // printf("CObject Constructor \n"); } ~CObject() { // printf("CObject Destructor \n"); } }; class CCmdTarget:public CObject { public: CCmdTarget() { // printf("CCmdTarget Constructor \n"); } ~CCmdTarget() { // printf("CCmdTarget Destructor \n"); } }; class CWinThread:public CCmdTarget { public: CWinThread() { // printf("CWinThread Constructor\n"); } ~CWinThread() { // printf("CWinThread Destructor \n"); } public: virtual void InitInstance() { printf("CWinThread InitInstance\n"); } virtual void Run() { printf("CWinThread Run\n"); } }; class CWnd; class CWinApp:public CWinThread { public: CWinApp *m_pCurrentWinApp; CWinThread *m_pCurrentWinThread; CWnd *m_pMainWnd; public: CWinApp() { m_pCurrentWinApp = this; m_pCurrentWinThread = this; // printf("CWinApp Constructor \n"); } ~CWinApp() { // printf("CWinApp Destructor \n"); } public: virtual void InitApplication() { printf("CWinApp InitApplication \n"); } virtual void InitInstance() { printf("CWinApp InitInstance \n"); } virtual void Run() { printf("CWinApp Run\n"); CWinThread::Run(); } }; class CDocument :public CCmdTarget { public: CDocument() { // printf("CDocument Constructor \n"); } ~CDocument() { // printf("CDocument Destructor \n"); } }; class CWnd:public CCmdTarget { public: CWnd() { // printf("CWnd Constructor \n"); } ~CWnd() { // printf("CWnd Destructor \n"); } public: virtual void PreCreateWindow() { printf("CWnd PreCreateWindow \n"); } virtual void Create() { printf("CWnd Create \n"); } void CreateEx() { printf("CWnd CreateEx\n"); PreCreateWindow(); } friend class CWinApp; }; class CFrameWnd:public CWnd { public: CFrameWnd() { // printf("CFrameWnd Constructor \n"); } ~CFrameWnd() { // printf("CFrameWnd Destructor \n"); } public: void Create() { printf("CFrameWnd Create \n"); CreateEx(); } virtual void PreCreateWindow() { printf("CFrameWnd PreCreateWindow \n"); } }; class CView:public CWnd { public: CView() { // printf("CView Constructor \n"); } ~CView() { // printf("CView Destructor \n"); } }; ////////////////////////////////////////////////////////////////////////// class CMyFrameWnd:public CFrameWnd { public: CMyFrameWnd() { // printf("CMyFrameWnd Constructor \n"); Create(); } ~CMyFrameWnd() { // printf("CMyFrameWnd Destructor \n"); } }; class CMyWinApp:public CWinApp { public: CMyWinApp() { // printf("CMyWinApp Constructor \n"); } ~CMyWinApp() { // printf("CMyWinApp Destructor \n"); } public: void InitInstance() { printf("CMyWinApp InitInstance \n"); m_pMainWnd = new CMyFrameWnd; } }; CMyWinApp theApp; ////////////////////////////////////////////////////////////////////////// CWinApp *AfxGetApp() { return theApp.m_pCurrentWinApp; } CWinThread *AfxGetThread() { return theApp.m_pCurrentWinThread; } void main() { CWinThread* pThread = AfxGetThread(); CWinApp* pApp = AfxGetApp(); pApp->InitApplication(); pThread->InitInstance(); pThread->Run(); }
相关文章推荐
- 深入浅出Win32多线程设计之MFC的多线程
- <mfc深入浅出>学习笔记一
- MFC深入浅出-MFC的进程和线程
- 深入浅出Win32多线程设计之MFC的多线程(1)
- 深入浅出MFC学习笔记(第6章 :MFC程序的生死因果)
- 深入浅出mfc
- 深入浅出MFC 第三章
- 深入浅出MFC 例子运行错误
- 深入浅出话VC++(2)——MFC的本质
- 深入浅出MFC学习笔记:MFC六大关键技术仿真之永续生存
- 深入浅出MFC Feature Pack(一):概述
- 深入浅出MFC(第一章)
- 深入浅出 mfc Command Routing 命令传递
- 深入浅出win32多线程之mfc(2)
- 手写MFC的深入浅出(转)
- 深入浅出MFC:MFC的MessageMaping
- <<深入浅出MFC>>笔记1——Win32基本程序观念
- MFC深入浅出学习心得(每日增加)
- 2009.11.4 ---Afx的全域函数(摘自侯捷的MFC深入浅出)
- 深入浅出话VC++(2)——MFC的本质