16,551
社区成员
发帖
与我相关
我的任务
分享
#define BOOL int
#define TRUE 1
#define FALSE 0
#include <iostream.h>
class CObject
{
public:
CObject::CObject()
{
cout << "CObject Constructor \n" << endl;
}
CObject::~CObject(){cout << "CObject Destructor \n" << endl;}
};
class CCmdTarget:public CObject
{
public:
CCmdTarget::CCmdTarget()
{
cout << "CCmdTarget Construct \n" << endl;
}
CCmdTarget::~CCmdTarget(){cout << "CCmdTarget Destructor \n" << endl;}
};
class CWinThread:public CCmdTarget
{
public:
CWinThread::CWinThread()
{
cout << "CWinThread Constructor \n" << endl;
}
CWinThread::~CWinThread(){cout << "CWinThread Destructor \n" << endl;}
virtual BOOL InitInstance()
{
cout << "CWinThread::InitInstance" << endl;
return TRUE;
}
virtual int Run()
{
cout << "CWinThread::Run" << endl;
return 1;
}
};
class CWnd;
class CWinApp:public CWinThread
{
public:
CWinApp* m_pCurrentWinApp;
CWnd* m_pMainWnd;
public:
CWinApp::CWinApp()
{
m_pCurrentWinApp=this;
cout << "CWinApp Constructor this指针已传入\n " << endl;
}
CWinApp::~CWinApp()
{
cout << "CWinApp Destructor \n" << endl;
}
virtual BOOL InitApplication()
{
cout << "CWinApp::InitApplication" << endl;
return TRUE;
}
virtual BOOL InitInstance()
{
cout << "CWinApp::InitInstance" << endl;
return TRUE;
}
virtual int Run()
{
cout << "CWinApp::Run" << endl;
return CWinThread::Run();
}
};
class CDocument:public CCmdTarget
{
public:
CDocument::CDocument()
{
cout << "CDocument Constructor \n";
}
CDocument::~CDocument(){cout << "CDocument Destructor \n";}
};
class CWnd : public CCmdTarget
{
public:
CWnd::CWnd()
{
cout << "CWnd Constructor \n";
}
CWnd::~CWnd(){cout << "CWnd Destructor \n";}
virtual BOOL Create();
BOOL CreateEx();
virtual BOOL PreCreateWindow();
};
class CFrameWnd:public CWnd
{
public:
CFrameWnd::CFrameWnd()
{
cout << "CFrameWnd Constructor \n";
}
CFrameWnd::~CFrameWnd(){cout << "CFrameWnd Destructor \n";}
BOOL Create();
virtual BOOL PreCreateWindow();
};
class CView:public CWnd
{
public:
CView::CView()
{
cout << "CView Constructor \n";
}
CView::~CView(){cout << "CView Destructor \n";}
};
CWinApp* AfxGetApp();
#include "my.h"
extern CMyWinApp theApp;
BOOL CWnd::Create()
{
cout << "CWnd::Create" << endl;
return TRUE;
}
BOOL CWnd::CreateEx()
{
cout << "CWnd::CreateEx" << endl;
PreCreateWindow();
return TRUE;
}
BOOL CWnd::PreCreateWindow()
{
cout << "CWnd::PreCreateWindow" << endl;
return TRUE;
}
BOOL CFrameWnd::Create()
{
cout << "CFrameWnd::Create" << endl;
CreateEx();
return TRUE;
}
BOOL CFrameWnd::PreCreateWindow()
{
cout << "CFrameWnd::PreCreateWindow" << endl;
return TRUE;
}
CWinApp* AfxGetApp()
{
return theApp.m_pCurrentWinApp;
}
#include <iostream.h>
#include "mfc.h"
class CMyWinApp:public CWinApp
{
public:
CMyWinApp::CMyWinApp()
{
cout << "CMyWinApp Constructor \n" << endl;
}
CMyWinApp::~CMyWinApp()
{
cout << "CMyWinApp Destructor \n" << endl;
}
virtual BOOL InitInstance();
};
class CMyFrameWnd:public CFrameWnd
{
public:
CMyFrameWnd();
~CMyFrameWnd(){cout << "CMyFrameWnd Destructor \n";}
};
#include "my.h"
CMyWinApp theApp;
BOOL CMyWinApp::InitInstance()
{
cout << "CMyWinApp::InisInstance" << endl;
m_pMainWnd=new CMyFrameWnd;
return TRUE;
}
CMyFrameWnd::CMyFrameWnd()
{
cout << "CMyFrameWnd::CMyFrameWnd" << endl;
Create();
}
void main()
{
CWinApp* pApp=AfxGetApp();
pApp->InitApplication();
pApp->InitInstance();
pApp->Run();
}
BOOL CWnd::PreCreateWindow()
{
cout << "CWnd::PreCreateWindow" << endl;
return TRUE;
}
BOOL CFrameWnd::PreCreateWindow()
{
cout << "CFrameWnd::PreCreateWindow" << endl;
return TRUE;
}
BOOL CWnd::CreateEx()
{
cout << "CWnd::CreateEx" << endl;
PreCreateWindow();
return TRUE;
}
BOOL CWnd::PreCreateWindow()
{
cout << "CWnd::PreCreateWindow" << endl;
return TRUE;
}
BOOL CFrameWnd::PreCreateWindow()
{
cout << "CFrameWnd::PreCreateWindow" << endl;
return TRUE;
}