MFC与API,SDK

MFC是微软提供的Windows应用程序开发框架,是对Windows API的封装,简化了开发工作。本文介绍了MFC的重要类如CWnd、CDocument、CView和CWinApp,以及SDK和MFC的区别。MFC采用面向对象的方式,而SDK是面向过程的,MFC通过类库提供更高效和灵活的编程体验。
摘要由CSDN通过智能技术生成

MFC简介

上述主要内容都是与实际操作关系非常密切的,在此不可能讲清楚;而且,这些在一般的书里都会讲到。我主要将最重要的MFC介绍一下。

  MFC是对WindowsAPI的封装,大大简化了我们的工作;学VC主要就是要学MFC,大约有100多个类,但常用的也就二三十个。应该象背4级单词一样将这些常用类搞懂;当然不要死记,要通过看帮助、看例子、动手练习来学会它们;而且,并非每个类的内部的所有函数都要学会,要日积月累。如果真的想成为高手,做个笔记本把自己认为重要的类、函数记下来,随时学习,也是很好的突击方法。

  下面介绍最重要的MFC。

  CWnd:窗口,它是大多数“看得见的东西”的父类(Windows里几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton,etc;一个例外是菜单(CMenu)不是从窗口派生的。该类很大,一开始也不必学,知道就行了。

  CDocument文档,负责内存数据与磁盘的交互。最重要的是OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(读写)

  CView视图,负责内存数据与用户的交互。包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应)。最重要的是OnDraw(重画窗口),通常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、快捷键和其他用户消息。你自己的许多功能都要加在里面,你打交道最多的就是它。

  CDC设备文本。无论是显示器还是打印机,都是画图给用户看。这图就抽象为CDC。CDC与其他GDI(图形设备接口)一起,完成文字和图形、图像的显示工作。把CDC想象成一张纸,每个窗口都有一个CDC相联系,负责画窗口。CDC有个常用子类CClientDC(窗口客户区),画图通常通过CClientDC完成。

  CDialog对话框

  CWinApp应用程序类。似于C中的main函数,是程序执行的入口和管理者,负责程序建立、消灭,主窗口和文档模板的建立。最常用函数InitInstance():初始化。

  CGdiObject及子类,用于向设备文本画图。它们都需要在使用前选进DC。

  CPen笔,画线

  CBrush刷子,填充

  CFont字体,控制文字输出的字体

  CBitmap位图

  CPalette调色板

  CRgn区域,指定一块区域可以用于做特殊处理。

  CFile文件。最重要的不外是Open(打开),Read(读入),Write(写)

  CString字符串。封装了C中的字符数组,非常实用。

  CPoint点,就是(x,y)对

  CRect矩形,就是(left,top,right,bottom)

  CSize大小,就是(cx,cy)对(宽、高)

 

 

 

 

SDK : 全称Software Developers Kit,原本意思是软件开发工具集;往往是一系列的api函数;

MFC : 全称Microsoft Foundation Class Library 即各种类结合起来构成的一个应用程序框架;也即是对api封装后的类库。它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C++提供了相应的工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑.

 

MFC实现了对应用程序概念的封装,把类、类的继承、动态约束、类的关系和相互作用等封装起来。这样封装的结果对程序员来说,是一套开发模板(或者说模式)。

MFC抽象出众多类的共同特性,设计出一些基类作为实现其他类的基础。这些类中,最重要的类是CObject和CCmdTarget。CObject是MFC的根类,绝大多数MFC类是其派生的,包括CCmdTarget。CObject 实现了一些重要的特性,包括动态类信息、动态创建、对象序列化、对程序调试的支持,等等。所有从CObject派生的类都将具备或者可以具备CObject所拥有的特性。CCmdTarget通过封装一些属性和方法,提供了消息处理的架构。MFC中,任何可以处理消息的类都从CCmdTarget派生。

 

 

MFC封装了Win32 API,OLE API,ODBC API等底层函数的功能,并提供更高一层的接口,简化了Windows编程。同时,MFC支持对底层API的直接调用。 MFC提供了一个Windows应用程序开发模式,对程序的控制主要是由MFC框架完成的,而且MFC也完成了大部分的功能,预定义或实现了许多事件和消息处理,等等。框架或者由其本身处理事件,不依赖程序员的代码;或者调用程序员的代码来处理应用程序特定的事件。MFC是C++类库,程序员就是通过使用、继承和扩展适当的类来实现特定的目的。例如,继承时,应用程序特定的事件由程序员的派生类来处理,不感兴趣的由基类处理。实现这种功能的基础是C++对继承的支持,对虚拟函数的支持,以及MFC实现的消息映射机制。

 

其实一般的应用程序创建窗体等都是用的API.

这样来说比如你要写个程序,全部用API来写(即SDK)很麻烦.

所以VC就推出了MFC,他封装了大部分API,

并且把相关的API组成一个类,这样不断的封装,

并且使用类向导,就可以很方便很快速并且灵活的完成一个应用程序

 

 API SDK 是C语言,是面向过程的
MFC 是对API的一个封装,是面向对象的,但它不是纯的面向对象的

 

 

 

API(Application Programming Interface,应用程序编程接口)是一套用来控制Windows的各个部件(从桌面的外观到位一个新进程分配的内存)的外观和行为的一套预先定义的Windows函数.用户的每个动作都会引发一个或几个函数的运行以Windows告诉发生了什么.
MFC,微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎,WinOS下开发人员使用的专业C++ SDK,MFC作为与VC++血肉相连的部分

 

MFC是 Win API与C++的结合,{(API,即[微软提供的WinOS下]应用程序的[编程语言]接口),是一种软件编程的规范,可以让用户使用各种各样的第三方[我是一方,微软是一方,Borland就是第三方]的编程语言来进行对Win OS下应用程序的开发,使这些被开发出来的应用程序能很好地在 WinOS下运行,只要它们是接受和遵循API规范的,[这其实也是一种必要,微软如果不提供API,这个世上对Win编程的工作就不会存在,微软的产品就会迅速从时尚变成垃圾],VB,VC,BC,BCB,VCB,Dehpi应用程序本质上全部运行于API机制,工作在WinOS的消息机制和绘图里,遵守 WinOS作为一个操作系统的内部实现

 

不仅是windows,其他的操作系统,程序库也会提供api,以便通过编程操作特定的程序。

mfc 当然是一种API。 但作为一种旨在解决windows平台下窗口程序设计的API框架,mfc的诸多竞争对手显然更为出色。 比如、Borland的VCL。VCL是Delphi,C++Builder等编程语言的基本类库,是对API的封装。MFC是微软提供的对API的封装

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值