`
isiqi
  • 浏览: 16491945 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

MFC六大关键技术之模拟

MFC 
阅读更多

先列出类的层次:

testmfc

以下代码,模拟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();
}
分享到:
评论

相关推荐

    深入浅出MFC简体中文版及源代码

    我个㆟特别喜欢第3章:MFC 六大关键技术之模拟。这章内容的设计的确在 MFC 丛林㆗, 大刀阔斧㆞披露出最重要的筋络,我相信这正是所有学习 MFC 的㆟所需要的㆒种表明方 式。对我而言,以往遗留的许多疑惑,在此都㆒...

    深入浅出MFC清晰版

    书中提到的“MFC六大关键技术之模拟”章节,对MFC的核心技术进行了详尽的解析。这六大技术包括但不限于消息处理机制、文档视图架构、控件使用等,这些技术是理解和掌握MFC的关键。 1. **消息处理机制**:这是...

    深入浅出MFC——MFC初级入门(繁体版)

    #### 第三篇:MFC六大关键技术之模拟 - **第3章:MFC六大关键技术之模拟** - **MFC类层次**:介绍了MFC的类结构和继承关系。 - **Frame1范例程序**:通过一个简单的例子来演示MFC的基本用法。 - **MFC程序的初始...

    MFC vc++ 银行业务模拟系统

    MFC(Microsoft Foundation Classes)是微软为Windows应用程序开发提供的一套C++类库,它基于面向对象编程思想,极大地简化了Windows API的使用。在本项目中,"MFC银行业务模拟系统"是一个基于VC++的实践应用,旨在...

    mfc深入浅出(第二版,简体中文)

    对MFC六大关键技术的模拟(MFC的类别层次,MFC程式的初始化过程,RTII,动态生成,机制,讯息映射,命令绕行) 3。对Visual C++整合开发环境的介绍。 4。对MFC三大巨集的详细分析。 5。MFC的层次结构和MFC的骨干程式...

    MFC界面开发

    对MFC六大关键技术的模拟(MFC的类别层次,MFC程式的初始化过程,RTII,动态生成,机制,讯息映射,命令绕行) 3。对Visual C++整合开发环境的介绍。 4。对MFC三大巨集的详细分析。 5。MFC的层次结构和MFC的骨干...

    MFC之深入浅出

    - **MFC六大技术之简化仿真**:通过控制台程序模拟MFC的六大核心技术,帮助读者理解其工作原理。 2. **第1篇:欲善工事先利其器** - 为完全不熟悉Visual C++集成环境的读者提供入门指导,帮助他们快速掌握开发...

    深入浅出MFC(学习c++必用)

    #### 三、MFC六大关键技术模拟 MFC通过六大关键技术简化了Win32编程的复杂度: 1. **MFC类层次结构**:MFC构建了一个庞大的类层次,其中的类相互关联,共同完成复杂的任务。 2. **RTTI(执行时期类型识别)**:MFC...

    基于OpenGL的光照模型及其MFC实现

    真实感图形学旨在利用计算机生成逼真的三维场景图像,涉及的关键技术包括景物建模、投影变换、消隐处理以及色彩和明暗处理等。其中,光照模型是计算场景中物体明暗变化的基础。在现实世界中,光照效果通常包含光的...

Global site tag (gtag.js) - Google Analytics