MFC 简述

一、MFC简述

 一是放置Windows API的面向对象的包装的C++类库

MFC6.0版本封装了约200个类库:其中一些可以直接使用,另一些则主要作为基础类使用;

类库中定义的成员函数有几百个:其中许多是Windows API的简单封装,甚至与相应的API函数同名。

二是一个应用程序的框架结构

MFC几乎封装了程序操作的所有方面;

提供抽象功能:把程序中数据视图与数据本身分开等。

二、MFC的两个设计思想

1.提供面向对象的接口,支持可重用性、自包含性及OOP原则。

这点由封装类和虚函数完成。

2.实现上述目标的前提是不需要强加给系统过多的工作,或不增加应用程序对内存的不必要开销。

这点在MFC对象与Windows对象间的关系得到了体现。

一个规则:若Windows通过某种类型的句柄展示一个对象,则相应的MFC类就会包含那个句柄的数据成员;

 如果你想调用某API函数,该函数要求一个句柄,但你只有CWnd或CWnd指针,而不是HWND时也可用。

一个实例:Windows中有关窗口的信息被保存在内存中并隐藏,应用程序只能处理窗口句柄或HWND,

MFC并没有复制在CWnd类的数据成员中的与HWND有关的所以信息,实际是通过将HWND存储

在称为m_hWnd的公用CWnd数据成员中,而在CWnd内包装了一个窗口。

三、MFC类的分层结构

大多数MFC类都是从CObject中直接或间接地派生出来的;同时CObject为这些继承类提供了3个重要特性:

1.串行化支持

串行化:对象的永久数据流出或流入存储介质的进程。

2.运行时类信息支持

运行时类信息(RTCI):允许在运行时检索对象的类名称及对象的其他信息。

3.诊断和调试支持

嵌入到CObject中的诊断和调试支持允许你对CObject派生类的实例执行有效性检查,并将状态信息转储到一个调试窗口中。

四、MFC中的两类函数

1.类成员函数:仅被所属的类对象调用。

2.AFX函数:以Afx开头,在任何时候任何地方都可使用。

常用的AFX函数

AfxAbort :无条件终止一应用程序,常在不可恢复错误发生时调用

AfxBeginThread:创建新的线程并开始执行它

AfxEndThread:终止当前执行的线程

AfxMessageBox:显示Windows消息框

AfxGetApp:返回指向应用程序对象的指针

AfxGetAppName:返回应用程序的名称

AfxGetMainWnd:返回指向应用程序主窗口的指针

AfxGetInstanceHandle:返回标识当前应用程序实例的句柄

AfxRegisterWndClass:为MFC应用程序注册自定义的WNDCLASS类

MFC应用程序对象

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值