天天信息:mfc板材是什么板(mfc是什么)
1、MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。
(资料图片)
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实现的消息映射机制。
本文就为大家分享到这里,希望看了会喜欢。
标签:
- 天天信息:mfc板材是什么板(mfc是什么)
- 焦点!意大利债务主管亚科沃尼:评级机构“合理乐观”的决定将产生“令人满意的结果”
- 联想集团南方基地实现规模投产 天天要闻
- 农业农村部:抓紧制定出台设施农业建设规划和指导意见 启动实施设施农业现代化提...
- 当地时间5月8日,联合国秘书长古特雷斯将在途经卡塔尔多哈和非洲之后前往西班牙,...
- Maybe官宣复出,将携手Fy、Chalice组建新队
- 祸根早已埋下!被抓的炒股起家大佬,玩塌一家“世界500强”公司
- 快看点丨不得不承认,《街霸》和《拳皇》的人气全是靠冷饭炒起来的
- 世界微头条丨中银三星人寿2022年实现净利润0.078亿元
- 热资讯!优秀共青团员事迹材料1500字_优秀共青团员事迹材料
- 世界观热点:沈阳市疾控中心发布重要提醒!
- 不仅仅是解读一首诗
- SIA:2022年全球半导体销售额增长到5740亿美元 复合年增长率为6.67%
- 各国央行2023年初创纪录地购买黄金 新加坡增购幅度最大 每日资讯
- 冠军中单Quinn:我从来没有赢过Major,而现在我已经连续两连冠 世界速递
- 播报:《星战幸存者》英国首发销量优秀 比前作高出30%
- 【速看料】「北交所周报」五一过后北交所近九成个股上涨;锦好医疗周涨幅高达42%;...
- 国信期货20230508日报:金银震荡回调,原油企稳反弹,股指多单轻仓 环球快看
- NBA季后赛太阳大胜掘金,布克杜兰特35+得分创历史-天天微头条
- 24年前的今天,我们永远不会忘记!
- 蔚来汽车开通法务部官微,跟进特斯拉、理想等
- 环球短讯!豪鹏科技2022年度拟每10股派3元 5月17日除权除息
- 晚间公告丨5月8日这些公告有看头_每日热讯
- 白酒格局嬗变:汾酒越位、牛栏山掉队,今世缘、舍得冲击百亿,仅金种子净亏损
- 【世界新视野】江西强降雨造成53.6万人受灾 直接经济损失6.7亿元
- 巴西经济学家预计2023年年底SELIC利率为12.50%,2024年年底SELIC利率为10%
- 像素画步骤:一根葱
- kennyS无缘家乡Major,法国狙神遗憾退场
- 三峡旅游:拟转让客运公司及汽车销售公司股权
- 唐人神:4月生猪销售收入同比上升108.05%
- 天天信息:mfc板材是什么板(mfc是什么)
- 焦点!意大利债务主管亚科沃尼:评级机构“
- 联想集团南方基地实现规模投产 天天要闻
- 农业农村部:抓紧制定出台设施农业建设规划
- 当地时间5月8日,联合国秘书长古特雷斯将在
- Maybe官宣复出,将携手Fy、Chalice组建新队
- 祸根早已埋下!被抓的炒股起家大佬,玩塌一
- 快看点丨不得不承认,《街霸》和《拳皇》的
- 世界微头条丨中银三星人寿2022年实现净利润
- 热资讯!优秀共青团员事迹材料1500字_优秀
- 世界观热点:沈阳市疾控中心发布重要提醒!
- 不仅仅是解读一首诗
- SIA:2022年全球半导体销售额增长到5740亿
- 各国央行2023年初创纪录地购买黄金 新加坡
- 冠军中单Quinn:我从来没有赢过Major,而现
- 播报:《星战幸存者》英国首发销量优秀 比
- 【速看料】「北交所周报」五一过后北交所近
- 国信期货20230508日报:金银震荡回调,原油
- NBA季后赛太阳大胜掘金,布克杜兰特35+得分
- 24年前的今天,我们永远不会忘记!
- 蔚来汽车开通法务部官微,跟进特斯拉、理想
- 环球短讯!豪鹏科技2022年度拟每10股派3元
- 晚间公告丨5月8日这些公告有看头_每日热讯
- 白酒格局嬗变:汾酒越位、牛栏山掉队,今世
- 【世界新视野】江西强降雨造成53.6万人受灾
- 巴西经济学家预计2023年年底SELIC利率为12.
- 像素画步骤:一根葱
- kennyS无缘家乡Major,法国狙神遗憾退场
- 三峡旅游:拟转让客运公司及汽车销售公司股
- 唐人神:4月生猪销售收入同比上升108.05%