MFC编程入门精讲

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:
   // Constructor
   COurWnd()
   {
     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:
   // Constructor
   COurWnd()
   {
     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 it
  return 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消息。

  • 10
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值