您的位置:首页 > 其它

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();

}
//------------------------------------------------------------------


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐