MFC(Microsoft Foundation Classes,Microsoft基本类)是一组预定义的类,封装了Windows API,对Windows编程来说是一种面向对象的方法。
- 所有使用MFC类的名称都已C开始,如CView。
1、简单的MFC程序
1.1 添加包括afxwin.h头文件的#include语句,因为该文件包含了许多MFC类的定义。
#include<afxwin.h>
1.2 派生两个类:应用程序类和窗口类
(1)应用程序类:CWinApp 类
该类对象包括启动、初始化、运行和关闭应用程序所需要的一切代码,所以需要根据CWinApp派生自己的类,从而得到自己的应用程序。
class COurApp: public CWinApp
{
public:virtual BOOL InitInstance() override;
};
(2)窗口类:CFrameWnd类
MFC应用程序需要一个窗口做为与用户交互的界面,称为框架窗口。所以需要从类CFrameWind中派生一个窗口类。
class COurWnd: public CFrameWnd
{public:// ConstructorCOurWnd(){Create(nullptr, _T("Our Dumb MFC Application"));}
};
(3)为应用程序定义过窗口类之后,就可以编写COurApp类中的InitInstance()函数
BOOL COurApp::InitInstance(void)
{m_pMainWnd = new COurWnd; m_pMainWnd->ShowWindow(m_nCmdShow); return TRUE;
}
1.3 最终的产品
#include <afxwin.h> // For the class library// Application class definition
class COurApp: public CWinApp
{
public:virtual BOOL InitInstance() override;
};// Window class definition
class COurWnd: public CFrameWnd
{public:// ConstructorCOurWnd(){Create(nullptr, _T("Our Easy MFC Application"));}
};// Function to create an instance of the main application window
BOOL COurApp::InitInstance(void)
{m_pMainWnd = new COurWnd; // Construct a window object...m_pMainWnd->ShowWindow(m_nCmdShow); // ...and display itreturn TRUE;
}// Application object definition at global scope
COurApp AnApplication; // Define an application object
2、使用MFC编写Windows程序
2.1 MFC中的基本概念
- 文档:文档是应用程序中与用户交互的数据集合。文档不仅仅局限于文本,是各种数据的集合。程序中的文档是作为文档类的对象定义的。文档类是从MFC库中的CDocument类派生的,需要添加数据成员来存储应用程序需要的数据,还要添加成员函数来支持对数据的处理。
- 视图:视图是提供一种机制来显示文档对象包含数据的部分或全部数据。
- 文档模板:使文档、视图和框架窗口之间相互协作。
- MFC应用程序中4个基本类:应用程序类(CMyApp)、框架窗口类(CMyWnd)、视图类(CMy)、文档类(CMyDoc)
2.2 创建MFC应用程序
2.2.1 使用VS2017创建MFC程序
(1)选中MFC应用程序

(2)应用程序类型

选项介绍:
- 单文档:每次只需要打开一个文档的程序,应用程序窗口是对话窗口,不是框架窗口
- 多个顶层文档:文档显示在桌面的子窗口中
- 文档视图支持:该选项是默认选中的,得到内置的支持代码;如果取消选中,需要编程人员自己负责编写
(3)文档模板属性

设计程序要创建的文件的扩展名,过滤器名称则是在Open和Save As对话框中出现的过滤器的名称,可以使列表只显示扩展名为.txt的文件。
(4)生成的类

2.3 分析程序生成的类
常用的资源分析选项卡:资源管理器、类视图、资源视图

关键类:应用程序类(App)、框架窗口类(CMainFrame)、文档类(Doc)、视图类(View)

2.4 结束
可以把该应用程序的操作归结为4个步骤:
(1)创建应用程序对象theApp。
(2)执行MFC提供的WinMain()函数。
(3)WinMainO调用InitInstance0函数,此函数创建文档模板、主框架窗口、文档和视图。
(4)WinMain()调用Run()函数,此函数执行主消息循环,以获取和分派Windows消息。


![MFC最详细入门教程[转载]](https://img-blog.csdnimg.cn/20191207225234302.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZyZWVraW5nMTAx,size_16,color_FFFFFF,t_70)













