先列出类的层次:
以下代码,模拟MFC运行的类,纯是一个玩具程序,主要是为后面的技术服务,作一个基础。
/********************************************************************
created: 2010-7-13 22:40
filename: MFC.h
author: luis
purpose:
*********************************************************************/
#pragma once
typedef long BOOL;
#define FALSE 0
#define TRUE 1
#define NULL 0
#include <iostream>
using namespace std;
class CObject
{
public:
CObject::CObject() { }
CObject::~CObject() { }
};
class CCmdTarget : public CObject
{
public:
CCmdTarget::CCmdTarget() { }
CCmdTarget::~CCmdTarget() { }
};
class CWinThread : public CCmdTarget
{
public:
CWinThread::CWinThread() { }
CWinThread::~CWinThread() { }
virtual BOOL InitInstance() {
cout << "CWinThread::InitInstance \n";
return TRUE;
}
virtual int Run() {
cout << "CWinThread::Run \n";
return 1;
}
};
class CWnd;
class CWinApp : public CWinThread
{
public:
CWinApp* m_pCurrentWinApp;
CWnd* m_pMainWnd;
public:
CWinApp::CWinApp() { m_pCurrentWinApp = this; }
CWinApp::~CWinApp() { }
virtual BOOL InitApplication() {cout << "CWinApp::InitApplication \n";return TRUE;}
virtual BOOL InitInstance() {cout << "CWinApp::InitInstance \n";return TRUE;}
virtual int Run()
{
cout << "CWinApp::Run \n";
return CWinThread::Run();
}
};
class CDocument : public CCmdTarget
{
public:
CDocument::CDocument() { }
CDocument::~CDocument() { }
};
class CWnd : public CCmdTarget
{
public:
CWnd::CWnd() { }
CWnd::~CWnd() { }
virtual BOOL Create();
BOOL CreateEx();
virtual BOOL PreCreateWindow();
};
class CFrameWnd : public CWnd
{
public:
CFrameWnd::CFrameWnd() { }
CFrameWnd::~CFrameWnd() { }
BOOL Create();
virtual BOOL PreCreateWindow();
};
class CView : public CWnd
{
public:
CView::CView() { }
CView::~CView() { }
};
// global function
CWinApp* AfxGetApp();
/********************************************************************
created: 2010-7-13 23:02
filename: MFC.cpp
author: luis
purpose:
*********************************************************************/
#include "StdAfx.h"
#include "MFC.h"
#include "my.h" // 原本含入mfc.h 就好,但為了CMyWinApp 的定義,所以...
extern CMyWinApp theApp;
BOOL CWnd::Create()
{
cout << "CWnd::Create \n";
return TRUE;
}
BOOL CWnd::CreateEx()
{
cout << "CWnd::CreateEx \n";
PreCreateWindow();
return TRUE;
}
BOOL CWnd::PreCreateWindow()
{
cout << "CWnd::PreCreateWindow \n";
return TRUE;
}
BOOL CFrameWnd::Create()
{
cout << "CFrameWnd::Create \n";
CreateEx();
return TRUE;
}
BOOL CFrameWnd::PreCreateWindow()
{
cout << "CFrameWnd::PreCreateWindow \n";
return TRUE;
}
CWinApp* AfxGetApp()
{
return theApp.m_pCurrentWinApp;
}
/********************************************************************
created: 2010-7-13 23:02
filename: MY.h
author: luis
purpose:
*********************************************************************/
#pragma once
#include "mfc.h"
class CMyWinApp : public CWinApp
{
public:
CMyWinApp::CMyWinApp() { }
CMyWinApp::~CMyWinApp() { }
virtual BOOL InitInstance();
};
class CMyFrameWnd : public CFrameWnd
{
public:
CMyFrameWnd();
~CMyFrameWnd() { }
};
/********************************************************************
created: 2010-7-13 23:02
filename: MY.cpp
author: luis
purpose:
*********************************************************************/
#include "StdAfx.h"
#include "MY.h"
CMyWinApp theApp; // global object
BOOL CMyWinApp::InitInstance()
{
cout << "CMyWinApp::InitInstance \n";
m_pMainWnd = new CMyFrameWnd;
return TRUE;
}
CMyFrameWnd::CMyFrameWnd()
{
cout << "CMyFrameWnd::CMyFrameWnd \n";
Create();
}
//---------------------------------------------------------------
// main
//---------------------------------------------------------------
void main()
{
CWinApp* pApp = AfxGetApp();
pApp->InitApplication();
pApp->InitInstance();
pApp->Run();
}
分享到:
相关推荐
我个㆟特别喜欢第3章:MFC 六大关键技术之模拟。这章内容的设计的确在 MFC 丛林㆗, 大刀阔斧㆞披露出最重要的筋络,我相信这正是所有学习 MFC 的㆟所需要的㆒种表明方 式。对我而言,以往遗留的许多疑惑,在此都㆒...
书中提到的“MFC六大关键技术之模拟”章节,对MFC的核心技术进行了详尽的解析。这六大技术包括但不限于消息处理机制、文档视图架构、控件使用等,这些技术是理解和掌握MFC的关键。 1. **消息处理机制**:这是...
#### 第三篇:MFC六大关键技术之模拟 - **第3章:MFC六大关键技术之模拟** - **MFC类层次**:介绍了MFC的类结构和继承关系。 - **Frame1范例程序**:通过一个简单的例子来演示MFC的基本用法。 - **MFC程序的初始...
MFC(Microsoft Foundation Classes)是微软为Windows应用程序开发提供的一套C++类库,它基于面向对象编程思想,极大地简化了Windows API的使用。在本项目中,"MFC银行业务模拟系统"是一个基于VC++的实践应用,旨在...
对MFC六大关键技术的模拟(MFC的类别层次,MFC程式的初始化过程,RTII,动态生成,机制,讯息映射,命令绕行) 3。对Visual C++整合开发环境的介绍。 4。对MFC三大巨集的详细分析。 5。MFC的层次结构和MFC的骨干程式...
对MFC六大关键技术的模拟(MFC的类别层次,MFC程式的初始化过程,RTII,动态生成,机制,讯息映射,命令绕行) 3。对Visual C++整合开发环境的介绍。 4。对MFC三大巨集的详细分析。 5。MFC的层次结构和MFC的骨干...
- **MFC六大技术之简化仿真**:通过控制台程序模拟MFC的六大核心技术,帮助读者理解其工作原理。 2. **第1篇:欲善工事先利其器** - 为完全不熟悉Visual C++集成环境的读者提供入门指导,帮助他们快速掌握开发...
#### 三、MFC六大关键技术模拟 MFC通过六大关键技术简化了Win32编程的复杂度: 1. **MFC类层次结构**:MFC构建了一个庞大的类层次,其中的类相互关联,共同完成复杂的任务。 2. **RTTI(执行时期类型识别)**:MFC...
真实感图形学旨在利用计算机生成逼真的三维场景图像,涉及的关键技术包括景物建模、投影变换、消隐处理以及色彩和明暗处理等。其中,光照模型是计算场景中物体明暗变化的基础。在现实世界中,光照效果通常包含光的...