MFC类层次结构
class CDocument : public CCmdTarget
{
public:
CDocument::CDocument() {cout<<"CDocument Constructor"<< endl;}
CDocument::~CDocument() {cout<<"CDocument Destructor"<< endl;}
};
class CWnd : public CCmdTarget
{
public:
CWnd::CWnd() {cout<<"CWnd Constructor"<< endl;}
CWnd::~CWnd() {cout<<"CWnd Destructor"<< endl;}
};
class CFrameWnd : public CWnd
{
public:
CFrameWnd::CFrameWnd() {cout<<"CFrameWnd Constructor"<< endl;}
CFrameWnd::~CFrameWnd() {cout<<"CFrameWnd Destructor"<< endl;}
};
class CView : public CWnd
{
public:
CView::CView() {cout<<"CView Constructor"<< endl;}
CView::~CView() {cout<<"CView Destructor"<< endl;}
};
// global function
CWinApp* AfxGetApp();
//------------------------------------------------------------------
// MY.H
//------------------------------------------------------------------
#include <iostream>
#include "MFC.h"
class CMyWinApp : public CWinApp
{
public:
CMyWinApp::CMyWinApp() { cout<<"CMyWinApp Constructor"<< endl;}
CMyWinApp::~CMyWinApp() {cout<<"CMyWinApp Destructor"<< endl;}
};
class CMyFrameWnd : public CFrameWnd
{
public:
CMyFrameWnd::CMyFrameWnd() {cout<<"CMyFrameWnd Constructor"<< endl;}
CMyFrameWnd::~CMyFrameWnd() {cout<<"CMyFrameWnd Destructor"<< endl;}
};
//------------------------------------------------------------------
// MFC.CPP
//------------------------------------------------------------------
#include "MY.h"
extern CMyWinApp theApp;
CWinApp* AfxGetApp()
{
return theApp.m_pCurrentWinApp;
}
//------------------------------------------------------------------
// MY.CPP
//------------------------------------------------------------------
#include "MY.h"
CMyWinApp theApp; // global object
void main()
{
CWinApp* pApp = AfxGetApp();
}