当前位置:首页 > 汽车 > 正文内容

mfc是什么(马蜂巢是什么做成的)

2022-09-18 00:05:40汽车356

您好,现在冰冰来为大家解答以上的问题。马蜂巢是什么做成的,mfc是什么相信很多小伙伴还不知道,现在让我们一起来看看吧!

1、MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。

mfc是什么(马蜂巢是什么做成的)

2、因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。

3、Microsoft Visual C++提供了相应的工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。

4、封装 构成MFC框架的是MFC类库。

5、MFC类库是C++类库。

6、这些类或者封装了Win32应用程序编程接口,或者封装了应用程序的概念,或者封装了OLE特性,或者封装了ODBC和DAO数据访问的功能,等等,分述如下。

7、(1)对Win32应用程序编程接口的封装用一个C++ Object来包装一个Windows Object。

8、例如:class CWnd是一个C++ window object,它把Windows window(HWND)和Windows window有关的API函数封装在C++ window object的成员函数内,后者的成员变量m_hWnd就是前者的窗口句柄。

9、(2)对应用程序概念的封装使用SDK编写Windows应用程序时,总要定义窗口过程,登记Windows Class,创建窗口,等等。

10、MFC把许多类似的处理封装起来,替程序员完成这些工作。

11、另外,MFC提出了以文档-视图为中心的编程模式,MFC类库封装了对它的支持。

12、文档是用户操作的数据对象,视图是数据操作的窗口,用户通过它处理、查看数据。

13、(3)对COM/OLE特性的封装OLE建立在COM模型之上,由于支持OLE的应用程序必须实现一系列的接口(Interface),因而相当繁琐。

14、MFC的OLE类封装了OLE API大量的复杂工作,这些类提供了实现OLE的更高级接口。

15、(4)对ODBC功能的封装以少量的能提供与ODBC之间更高级接口的C++类,封装了ODBC API的大量的复杂的工作,提供了一种数据库编程模式。

16、继承 首先,MFC抽象出众多类的共同特性,设计出一些基类作为实现其他类的基础。

17、这些类中,最重要的类是CObject和CCmdTarget。

18、CObject是MFC的根类,绝大多数MFC类是其派生的,包括CCmdTarget。

19、CObject 实现了一些重要的特性,包括动态类信息、动态创建、对象序列化、对程序调试的支持,等等。

20、所有从CObject派生的类都将具备或者可以具备CObject所拥有的特性。

21、CCmdTarget通过封装一些属性和方法,提供了消息处理的架构。

22、MFC中,任何可以处理消息的类都从CCmdTarget派生。

23、针对每种不同的对象,MFC都设计了一组类对这些对象进行封装,每一组类都有一个基类,从基类派生出众多更具体的类。

24、这些对象包括以下种类:窗口对象,基类是CWnd;应用程序对象,基类是CwinThread;文档对象,基类是Cdocument,等等。

25、程序员将结合自己的实际,从适当的MFC类中派生出自己的类,实现特定的功能,达到自己的编程目的。

26、虚拟函数和动态约束 MFC以“C++”为基础,自然支持虚拟函数和动态约束。

27、但是作为一个编程框架,有一个问题必须解决:如果仅仅通过虚拟函数来支持动态约束,必然导致虚拟函数表过于臃肿,消耗内存,效率低下。

28、例如,CWnd封装 Windows窗口对象时,每一条Windows消息对应一个成员函数,这些成员函数为派生类所继承。

29、如果这些函数都设计成虚拟函数,由于数量太多,实现起来不现实。

30、于是,MFC建立了消息映射机制,以一种富有效率、便于使用的手段解决消息处理函数的动态约束问题。

31、这样,通过虚拟函数和消息映射,MFC类提供了丰富的编程接口。

32、程序员继承基类的同时,把自己实现的虚拟函数和消息处理函数嵌入MFC的编程框架。

33、MFC编程框架将在适当的时候、适当的地方来调用程序的代码。

34、本书将充分的展示MFC调用虚拟函数和消息处理函数的内幕,让读者对MFC的编程接口有清晰的理解。

35、MFC的宏观框架体系 如前所述,MFC实现了对应用程序概念的封装,把类、类的继承、动态约束、类的关系和相互作用等封装起来。

36、这样封装的结果对程序员来说,是一套开发模板(或者说模式)。

37、针对不同的应用和目的,程序员采用不同的模板。

38、例如,SDI应用程序的模板,MDI应用程序的模板,规则DLL应用程序的模板,扩展DLL应用程序的模板,OLE/ACTIVEX应用程序的模板,等等。

39、这些模板都采用了以文档-视为中心的思想,每一个模板都包含一组特定的类。

40、典型的MDI应用程序的构成将在下一节具体讨论。

41、为了支持对应用程序概念的封装,MFC内部必须作大量的工作。

42、例如,为了实现消息映射机制,MFC编程框架必须要保证首先得到消息,然后按既定的方法进行处理。

43、又如,为了实现对DLL编程的支持和多线程编程的支持,MFC内部使用了特别的处理方法,使用模块状态、线程状态等来管理一些重要信息。

44、虽然,这些内部处理对程序员来说是透明的,但是,懂得和理解MFC内部机制有助于写出功能灵活而强大的程序。

45、总之,MFC封装了Win32 API,OLE API,ODBC API等底层函数的功能,并提供更高一层的接口,简化了Windows编程。

46、同时,MFC支持对底层API的直接调用。

47、MFC提供了一个Windows应用程序开发模式,对程序的控制主要是由MFC框架完成的,而且MFC也完成了大部分的功能,预定义或实现了许多事件和消息处理,等等。

48、框架或者由其本身处理事件,不依赖程序员的代码;或者调用程序员的代码来处理应用程序特定的事件。

49、MFC是C++类库,程序员就是通过使用、继承和扩展适当的类来实现特定的目的。

50、例如,继承时,应用程序特定的事件由程序员的派生类来处理,不感兴趣的由基类处理。

51、实现这种功能的基础是C++对继承的支持,对虚拟函数的支持,以及MFC实现的消息映射机制。

本文就为大家分享到这里,希望小伙伴们会喜欢。

扫描二维码推送至手机访问。

版权声明:文章内容摘自网络,如果无意之中侵犯了您的版权,请联系本站,本站将在3个工作日内删除。谢谢!

本文链接:http://xixia168.cn/n/qc/142836.html

标签: 马蜂mfc
分享给朋友:

“mfc是什么(马蜂巢是什么做成的)” 的相关文章

雷克萨斯韩国发布2021ES 300h

雷克萨斯韩国发布2021ES 300h

雷克萨斯韩国公司于24日宣布,它将开始销售2021年款的“ ES 300h”。ES是雷克萨斯的代表车型,由于其各种魅力(例如豪华的乘坐舒适性,安静性和舒适的内部空间)而被众多客户选择。在2018年,随着GA-K平台的推出,它已经重生为高级混合动力轿车,提供了驾驶乐趣,增强了车...

现代汽车的巨额投资奠定了克服危机的基础

现代汽车的巨额投资奠定了克服危机的基础

“未来的环保汽车业务与现代汽车集团的生存息息相关,对国家至关重要。”下个月14日,负责现代汽车集团两年的现代汽车集团高级副董事长Eui-sun Eui-sun在上个月由总统主持的``新政全国报道大赛的韩文版''中对未来愿景发表了声明。据说现代汽车公司内部对该词...

摆脱主要的跑车 例如英国豪华车品牌阿斯顿马丁

摆脱主要的跑车 例如英国豪华车品牌阿斯顿马丁

豪华车品牌长期以来一直重视传统,并专注于轿车和双门轿跑车等“保守”类型。但是,这种气氛在21世纪已逐渐改变。进入SUV领域的品牌数量在不断增加,以跟上豪华汽车消费者生活方式的变化。在这种趋势下,最近推出的两款豪华SUV以相反的理念和概念引起了人们的关注。一个是拥有100多年历...

据报道称丰田RAV4价格和规格上调

据报道称丰田RAV4价格和规格上调

新一代丰田RAV4在澳大利亚大获成功,它已成为最畅销的中型SUV,现在对价格和规格进行了小幅改动,以提高其吸引力。入门级的丰田RAV4GX车型(汽油和混合动力)现在的价格比以前贵了280至405美元,但带来了四个额外的USB端口(总共五个),以及一个高级方向盘以及前后地毯。升级的丰田RAV4 GX车...

下一代大众帕萨特将成为宝马的竞争对手

下一代大众帕萨特将成为宝马的竞争对手

将于2023年发布的全新德国中型变速器,将继续与Skoda Superb共享很多股份,进入高端市场并获得新的电动动力总成大众汽车内部已经批准了第九代大众帕萨特轿车和旅行车,这消除了人们对长期运行的德国中型汽车的偏爱,而不再支持另一款SUV。大众帕萨特(Volkswagen Passat)于1973年...

2023年大众帕萨特进入高端市场 并获得EV版本

2023年大众帕萨特进入高端市场 并获得EV版本

经过一年多的内部辩论,德国大众汽车公司已将第9代帕萨特汽车明确批准。该决定是在大众汽车集团董事长赫伯特·迪斯(Herbert Diess)对帕萨特是否会被取代表示怀疑之后作出的。他指出类似尺寸的Arteon越来越受欢迎,并计划从2023年起以四门轿车和庄园车身样式生产广受好评的电动ID...