您的位置:首页 > 其它

深入浅出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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: