MFC 六大关键技术之仿真——全局变量的调用
2007-11-28 10:43
316 查看
//MFC.H
#include <iostream.h>
class CObject
{
public:
CObject::CObject() {
cout << "CObject Constructor /n";
}
CObject::~CObject() {
cout << "CObject Destructor /n";
}
};
class CCmdTarget : public CObject
{
public:
CCmdTarget::CCmdTarget() {
cout << "CCmdTarget Constructor /n";
}
CCmdTarget::~CCmdTarget() {
cout << "CCmdTarget Destructor /n";
}
};
class CWinThread : public CCmdTarget
{
public:
CWinThread::CWinThread() {
cout << "CWinThread Constructor /n";
}
CWinThread::~CWinThread() {
cout << "CWinThread Destructor /n";
}
};
class CWinApp : public CWinThread
{
public:
CWinApp* m_pCurrentWinApp;
public:
CWinApp::CWinApp() {
cout << "CWinApp Constructor /n";
m_pCurrentWinApp = this;
}
CWinApp::~CWinApp() {
cout << "CWinApp Destructor /n";
}
};
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";
}
};
class CFrameWnd : public CWnd
{
public:
CFrameWnd::CFrameWnd() {
cout << "CFrameWnd Constructor /n";
}
CFrameWnd::~CFrameWnd() {
cout << "CFrameWnd Destructor /n";
}
};
class CView : public CWnd
{
public:
CView::CView() {
cout << "CView Constructor /n";
}
CView::~CView() {
cout << "CView Destructor /n";
}
};
// global function
CWinApp* AfxGetApp();
//----------------------------------------------------------------------------------------------------------------------------------------
//MFC.CPP
#include "my.h" // it should be mfc.h, but for CMyWinApp definition, so...
extern CMyWinApp theApp;
CWinApp* AfxGetApp()
{
return theApp.m_pCurrentWinApp;
}
//-------------------------------------------------------------------------------------------------------------------------------------
//MY.H
#include <iostream.h>
#include "mfc.h"
class CMyWinApp : public CWinApp
{
public:
CMyWinApp::CMyWinApp() {
cout << "CMyWinApp Constructor /n";
}
CMyWinApp::~CMyWinApp() {
cout << "CMyWinApp Destructor /n";
}
};
class CMyFrameWnd : public CFrameWnd
{
public:
CMyFrameWnd() {
cout << "CMyFrameWnd Constructor /n";
}
~CMyFrameWnd() {
cout << "CMyFrameWnd Destructor /n";
}
};
//-------------------------------------------------------------------------------------------------------------------------------------
//MY.CPP
#include "my.h"
CMyWinApp theApp;
//------------------------------------------------------------------
// main
//------------------------------------------------------------------
void main()
{
CWinApp* pApp = AfxGetApp();
}
//------------------------------------------------------------------
#include <iostream.h>
class CObject
{
public:
CObject::CObject() {
cout << "CObject Constructor /n";
}
CObject::~CObject() {
cout << "CObject Destructor /n";
}
};
class CCmdTarget : public CObject
{
public:
CCmdTarget::CCmdTarget() {
cout << "CCmdTarget Constructor /n";
}
CCmdTarget::~CCmdTarget() {
cout << "CCmdTarget Destructor /n";
}
};
class CWinThread : public CCmdTarget
{
public:
CWinThread::CWinThread() {
cout << "CWinThread Constructor /n";
}
CWinThread::~CWinThread() {
cout << "CWinThread Destructor /n";
}
};
class CWinApp : public CWinThread
{
public:
CWinApp* m_pCurrentWinApp;
public:
CWinApp::CWinApp() {
cout << "CWinApp Constructor /n";
m_pCurrentWinApp = this;
}
CWinApp::~CWinApp() {
cout << "CWinApp Destructor /n";
}
};
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";
}
};
class CFrameWnd : public CWnd
{
public:
CFrameWnd::CFrameWnd() {
cout << "CFrameWnd Constructor /n";
}
CFrameWnd::~CFrameWnd() {
cout << "CFrameWnd Destructor /n";
}
};
class CView : public CWnd
{
public:
CView::CView() {
cout << "CView Constructor /n";
}
CView::~CView() {
cout << "CView Destructor /n";
}
};
// global function
CWinApp* AfxGetApp();
//----------------------------------------------------------------------------------------------------------------------------------------
//MFC.CPP
#include "my.h" // it should be mfc.h, but for CMyWinApp definition, so...
extern CMyWinApp theApp;
CWinApp* AfxGetApp()
{
return theApp.m_pCurrentWinApp;
}
//-------------------------------------------------------------------------------------------------------------------------------------
//MY.H
#include <iostream.h>
#include "mfc.h"
class CMyWinApp : public CWinApp
{
public:
CMyWinApp::CMyWinApp() {
cout << "CMyWinApp Constructor /n";
}
CMyWinApp::~CMyWinApp() {
cout << "CMyWinApp Destructor /n";
}
};
class CMyFrameWnd : public CFrameWnd
{
public:
CMyFrameWnd() {
cout << "CMyFrameWnd Constructor /n";
}
~CMyFrameWnd() {
cout << "CMyFrameWnd Destructor /n";
}
};
//-------------------------------------------------------------------------------------------------------------------------------------
//MY.CPP
#include "my.h"
CMyWinApp theApp;
//------------------------------------------------------------------
// main
//------------------------------------------------------------------
void main()
{
CWinApp* pApp = AfxGetApp();
}
//------------------------------------------------------------------
相关文章推荐
- 深入浅出MFC学习笔记:MFC六大关键技术仿真之MFC程序的初始化过程
- 深入浅出MFC学习笔记(第三章:MFC六大关键技术之仿真:命令传递) .
- 深入浅出MFC学习笔记:MFC六大关键技术仿真之永续生存
- 深入浅出MFC学习笔记:MFC六大关键技术仿真之消息映射和消息流动
- MFC六大关键技术之仿真学习笔记(六)
- 深入浅出MFC学习笔记:MFC六大关键技术仿真之RTTI运行时类型识别
- 深入浅出MFC学习笔记:MFC六大关键技术仿真之永续生存
- 深入浅出MFC学习笔记:MFC六大关键技术仿真之消息映射和消息流动
- 深入浅出MFC——MFC六大关键技术仿真(二)
- MFC 六大关键技术之仿真 DECLARE_SERIAL / IMPLEMENT_SERIAL 宏
- 深入浅出MFC学习笔记:MFC六大关键技术仿真之RTTI运行时类型识别
- 深入浅出MFC学习笔记:MFC六大关键技术仿真之动态生成
- 深入浅出MFC学习笔记:(第三章MFC六大关键技术之仿真:类型识别,动态创建) .
- 《深入浅出MFC》_第3章 MFC 六大关键技术之仿真_Frame2 范例程序_输出分析
- MFC六大关键技术之仿真学习笔记(五)
- MFC六大关键技术之仿真学习笔记(七)
- MFC中六大关键技术的仿真
- 深入浅出MFC学习笔记(第三章:MFC六大关键技术之仿真:消息映射)
- MFC 六大关键技术之仿真——初始化过程
- 深入浅出MFC学习笔记:MFC六大关键技术仿真之动态生成