#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();
}
深入浅出MFC---Frame2
最新推荐文章于 2022-08-30 16:42:42 发布