今天我们来看一下mfc是什么,以下6个关于mfc是什么的观点希望能帮助到您找到想要的百科知识。
本文目录
mfc是什么?
mfc是微软公司提供的一个基础类库。
以C++类的形式封装了WindowsAPI,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。
mfc特性
Visual C++包含MFC应用程序向导,可用于兼容MFC的应用程序。在ATL程序中也可以手动添加MFC支持。在向导中有各种选项以定制生成的程序的功能,例如界面风格、语种、数据库开发支持、打印支持、自动化支持、ActiveX支持、网络支持、基于HTML的帮助文档支持等等。
在COM开发方面,相对于ATL来说,MFC的组件比较大,代码不够短小精悍,但是支持的功能也比较多,例如有对ActiveX Document的封装类。在界面开发方面,MFC提供对消息循环的封装,使用消息映射来避免虚函数的开销。MFC也提供常用Windows通用控件的封装类。
MFC扩展DLL的接口使得MFC程序可以直接调用MFC扩展DLL中的MFC类。MFC也支持在标准DLL中被使用。
以上内容参考 百度百科--mfc
MFC是什么
什么是MFC?
如果你要建立一个 Windows 应用程序,应该如何下手?
好的开端是从设计用户界面开始。首先,你要决定什么样的用户能使用该程序并根据需要来设置相应的用户界面对象。Windows 用户界面有一些标准的控件,如按钮、菜单、滚动条和列表等,这对那些 Windows 用户已经是很熟悉了。 要记住的是,作为程序员必须选择一组控件并决定如何把它们安排到屏幕上。传统上,你需要在纸上做一下用户界面的草图,直到对各元素感到满意为止。这对于一些比较小的项目,以及一些大项目的早期原型阶段是可以的。下一步,是要实现代码。为任何 Windows 平台建立应用程序时,程序员都有两种选择:C 或 C++。 使用 C,程序员是在 Windows 应用程序界面 ( API ) 的水平上编写代码。该界面是由几百个 C 函数所组成,这些函数在Windows API 参考手册中都有介绍。对于Windows NT, API 被称为 "Win32 API",以区别于其用于Windows 3.1的16位 API, Microsoft 也提供了 C++ 库,它位于任何 Windows API 之上,能够使程序员的工作更容易。它就是Microsoft基本类库 (MFC),该库的主要优点是效率高。它减少了大量在建立 Windows 程序时必须编写的代码。同时它还提供了所有一般 C++ 编程的优点,例如继承和封装。MFC 是可移植的,例如,在 Windows 3.1下编写的代码可以很容易地移植到Windows NT 或 Windows 95 上。因此,MFC 很值得推荐的开发Windows 应用程序的方法。在本教程自始至终使用的都是 MFC。当是使用MFC时,你编写的代码是用来建立必要的用户界面控件并定制其外观。同时你还要编写用来响应用户操作这些控件的代码。例如,如果用户单击一个按钮时,你应该有代码来响应。这就是事件驱动代码,它构成了所有应用程序。一旦应用程序正确的响应了所有允许的控制,它的任务也就完成了 。
Visual C++ 应用程序开发程序环境特别适合于使用 MFC (也有其它开发环境使用MFC,如C++ builder也包含了对MFC的支持),所以一起学习 MFC和 Visual C++ 能够增强你的开发程序的能力。
Windows应用程序使用几个标准的控件:
静态文本标签
按钮
列表框
组合框(一种更高级的列表框)
单选按钮 (单选框)
检查按钮 (复选框)
编辑框(单行和多行)
滚动条
你可以通过代码或"资源编辑器"来建立这些控件,在资源编辑器中可以建立对话框和这些控件。在本教程中,我们将使用代码来建立它们。
Windows支持几种类型的应用程序窗口。一个典型的应用程序应该活动在称为"框架窗口"中。一个框架窗口是一个全功能的主窗口,用户可以改变尺寸、最小化、最大化等。Windows也支持两种类型的对话框:模式和无模式对话框。模式对话框一旦出现在屏幕上只有当它退出时,屏幕上该应用程序的其余部分才能响应。无模式对话框出现在屏幕上时,程序的其余部分也可以作出响应,它就象浮动在上面一样。
最简单的 Windows 应用程序是使用单文档界面(SDI),只有一个框架窗口。Windows的钟表、PIF 编辑器、记事本等都是 SDI 应用程序的例子。Windows 也提供了一种称为多文档界面的组织形式,它可用于更复杂的应用程序。MDI 系统允许用户在同一应用程序中同时可以查看多个文档。例如,一个文本编辑器可以允许用户同时打开多个文本文件。使用 MDI时,应用程序有一个主窗口,在主窗口中有一些子窗口,每个子窗口中各自包含有各自的文档。在MDI框架中,主窗口有一个主菜单,它对主框架中最顶端窗口有效。各子窗口都可以缩成图标或展开,MDI主窗口也可以变成桌面上的一个图标。MDI界面可能会给你一种第二桌面的感觉,它对窗口的管理和删除混乱的窗口有很大的帮助。
你所建立的每一个应用程序都会使用它自己的一套控件、菜单结构以及对话框。应用程序界面的好坏取决于你如何选择和组织这些界面对象。Visual C++ 中的资源编辑器可以使你能容易的建立和定制这些界面对象。
事件驱动软件和词汇
所有基于窗口的GUI 都包含相同的基本元素,它们的操作方式都是相同的。在屏幕上,用户所看到的是一组窗口,每个窗口都包含有控件、图标、对象以及一些处理鼠标和键盘的元素。从用户角度来看,各系统的界面对象都是相同的:按钮、滚动条、图标、对话框以及下拉菜单等等。尽管这些界面元素的"外观和感觉"可能有些不同,但这些界面对象的工作方式都是相同的。例如,滚动条对于Windows、Mac和Motif 可能有些不同,但他们的作用完全是一样的。
从程序员的角度来看,这些系统在概念上是相似的,尽管它们可能有很大的不同。为了建立GUI 程序,程序员第一步要把所有需要的用户界面控件都放到窗口上。例如,如果程序员要建立一个从摄氏到华氏的转换的简单程序,则程序员所选择的用户界面对象来完成并在屏幕上把结果显示出来。在这个简单的程序中,程序员可能需要用户在一个可编辑的编辑框中输入温度值,在一个不可编辑的编辑框中显示转换结果,然后让用户可以单击一个标有"退出"的按钮来退出应用程序。
因为是用户来操作应用程序的控制,所以程序必须作出响应。所做的响应依赖于用户使用鼠标或键盘在不同控制上的操作。屏幕上的每个用户界面对象对事件的响应是不同的。例如,如果用户单击退出按钮,则该按钮必须更新屏幕、加亮它自己。然后程序必须响应退出。
Windows 所用的模式也是类似的。在一个典型的应用程序中,你将建立一个主窗口,并且在其中放置了一些用户界面控件。这些控件通常被称为子窗口--它们就象一些在主窗口中的更小更特殊的子窗口。作为程序员,你应该通过函数调用来发送信息操作这些控件、通过把信息发送给你到代码来响应用户的操作。
如果你从未做过事件驱动程序设计,则所有这些对你来说可能是很陌生的。但是,事件驱动程序设计方式是很容易理解的。具体的细节对不同的系统可能有些不同,但是其基本概念是类似的。在一个事件驱动界面中,应用程序会在屏幕上绘制几个界面对象,如按钮、文本区和菜单。应用程序通常通过一段称为事件循环的的代码来响应用户的操作。用户可以使用鼠标或键盘来任意操作屏幕上的对象。例如,用户用鼠标单击一个按钮。用鼠标单击就称为一个事件。事件驱动系统把用户的动作如鼠标单击和键盘操作定义为事件,也把系统操作如更新屏幕定义为事件。
在比较低级的编程方法中,如用C直接编写Windows API应用程序,代码量是非常大的,因为你所要照顾的细节太多了。例如,你用某种类型的结构来接收单击鼠标事件。你的事件循环中的代码会查看结构中不同域,以确定哪个用户界面对象受到了影响,然后会完成相应的操作。当屏幕上有很多对象时,应用程序会变得很大。只是简单地处理哪个对象被单击和对它需要做些什么要花费大量的代码。
幸运的是,你可以在比较高级的方法来进行编程,这就是使用MFC。在MFC中,几乎所有的低级的细节处理都为你代办了。如果你把某一用户界面对象放在屏幕上,你只需要两行代码来建立它。如果用户单击一个按钮,则按钮自己会完成一切必要的操作,从更新屏幕上的外观到调用你程序中的预处理函数。该函数包含有对该按钮作出相应操作的代码。MFC 为你处理所有的细节:你建立按钮并告知它特定的处理函数,则当它被按下时,它就会调用相应的函数。第四部分介绍了怎样使用消息映射来处理事件。
mfc是什么,做什么用呢
MFC是微软基础类的缩写(Microsoft Foundation Classes),是一个庞大的类库,可以理解为一种在Windows上开发软件的架构,是微软专为Visual C++定制的。该类库提供一组通用的可重用的类库供开发人员使用。
没有MFC之前,Windows上用Win32 API进行编程,之后MFC出现,在一定程度上提高了软件开发效率,它是对win32 API的封装,所以易用性好,不过性能会比win32开发低一些,二者各有所长吧。
在Windows上开发界面程序以前用MFC最合适,能兼顾效率和性能,后来出了.net的C#,MFC就不是最高效的开发方式了,而且MFC用不好的话,问题也挺多的,不过虽然大家都说MFC不好,但骂归骂,用还得用。
MFC是什么意思?
MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C++提供了相应的工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。
MFC是什么意思?
MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C++提供了相应的工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。
封装
构成MFC框架的是MFC类库。MFC类库是C++类库。这些类或者封装了Win32应用程序编程接口,或者封装了应用程序的概念,或者封装了OLE特性,或者封装了ODBC和DAO数据访问的功能,等等,分述如下。
(1)对Win32应用程序编程接口的封装
用一个C++ Object来包装一个Windows Object。例如:class CWnd是一个C++ window object,它把Windows window(HWND)和Windows window有关的API函数封装在C++ window object的成员函数内,后者的成员变量m_hWnd就是前者的窗口句柄。
(2)对应用程序概念的封装
使用SDK编写Windows应用程序时,总要定义窗口过程,登记Windows Class,创建窗口,等等。MFC把许多类似的处理封装起来,替程序员完成这些工作。另外,MFC提出了以文档-视图为中心的编程模式,MFC类库封装了对它的支持。文档是用户操作的数据对象,视图是数据操作的窗口,用户通过它处理、查看数据。
(3)对COM/OLE特性的封装
OLE建立在COM模型之上,由于支持OLE的应用程序必须实现一系列的接口(Interface),因而相当繁琐。MFC的OLE类封装了OLE API大量的复杂工作,这些类提供了实现OLE的更高级接口。
(4)对ODBC功能的封装
以少量的能提供与ODBC之间更高级接口的C++类,封装了ODBC API的大量的复杂的工作,提供了一种数据库编程模式。
继承
首先,MFC抽象出众多类的共同特性,设计出一些基类作为实现其他类的基础。这些类中,最重要的类是CObject和CCmdTarget。CObject是MFC的根类,绝大多数MFC类是其派生的,包括CCmdTarget。CObject 实现了一些重要的特性,包括动态类信息、动态创建、对象序列化、对程序调试的支持,等等。所有从CObject派生的类都将具备或者可以具备CObject所拥有的特性。CCmdTarget通过封装一些属性和方法,提供了消息处理的架构。MFC中,任何可以处理消息的类都从CCmdTarget派生。
针对每种不同的对象,MFC都设计了一组类对这些对象进行封装,每一组类都有一个基类,从基类派生出众多更具体的类。这些对象包括以下种类:窗口对象,基类是CWnd;应用程序对象,基类是CwinThread;文档对象,基类是Cdocument,等等。
程序员将结合自己的实际,从适当的MFC类中派生出自己的类,实现特定的功能,达到自己的编程目的。
虚拟函数和动态约束
MFC以“C++”为基础,自然支持虚拟函数和动态约束。但是作为一个编程框架,有一个问题必须解决:如果仅仅通过虚拟函数来支持动态约束,必然导致虚拟函数表过于臃肿,消耗内存,效率低下。例如,CWnd封装 Windows窗口对象时,每一条Windows消息对应一个成员函数,这些成员函数为派生类所继承。如果这些函数都设计成虚拟函数,由于数量太多,实现起来不现实。于是,MFC建立了消息映射机制,以一种富有效率、便于使用的手段解决消息处理函数的动态约束问题。
这样,通过虚拟函数和消息映射,MFC类提供了丰富的编程接口。程序员继承基类的同时,把自己实现的虚拟函数和消息处理函数嵌入MFC的编程框架。MFC编程框架将在适当的时候、适当的地方来调用程序的代码。本书将充分的展示MFC调用虚拟函数和消息处理函数的内幕,让读者对MFC的编程接口有清晰的理解。
MFC的宏观框架体系
如前所述,MFC实现了对应用程序概念的封装,把类、类的继承、动态约束、类的关系和相互作用等封装起来。这样封装的结果对程序员来说,是一套开发模板(或者说模式)。针对不同的应用和目的,程序员采用不同的模板。例如,SDI应用程序的模板,MDI应用程序的模板,规则DLL应用程序的模板,扩展DLL应用程序的模板,OLE/ACTIVEX应用程序的模板,等等。
这些模板都采用了以文档-视为中心的思想,每一个模板都包含一组特定的类。典型的MDI应用程序的构成将在下一节具体讨论。
为了支持对应用程序概念的封装,MFC内部必须作大量的工作。例如,为了实现消息映射机制,MFC编程框架必须要保证首先得到消息,然后按既定的方法进行处理。又如,为了实现对DLL编程的支持和多线程编程的支持,MFC内部使用了特别的处理方法,使用模块状态、线程状态等来管理一些重要信息。虽然,这些内部处理对程序员来说是透明的,但是,懂得和理解MFC内部机制有助于写出功能灵活而强大的程序。
总之,MFC封装了Win32 API,OLE API,ODBC API等底层函数的功能,并提供更高一层的接口,简化了Windows编程。同时,MFC支持对底层API的直接调用。
MFC提供了一个Windows应用程序开发模式,对程序的控制主要是由MFC框架完成的,而且MFC也完成了大部分的功能,预定义或实现了许多事件和消息处理,等等。框架或者由其本身处理事件,不依赖程序员的代码;或者调用程序员的代码来处理应用程序特定的事件。
MFC是C++类库,程序员就是通过使用、继承和扩展适当的类来实现特定的目的。例如,继承时,应用程序特定的事件由程序员的派生类来处理,不感兴趣的由基类处理。实现这种功能的基础是C++对继承的支持,对虚拟函数的支持,以及MFC实现的消息映射机制。
mfc是什么东西,是传销吗
mfc已经被中国警方和新西兰金融管理局认定为传销。
据新西兰先驱报中文网报道,7月19日新西兰金融市场管理局通过官网发布警告,提醒当地华人注意一家名为MBI International的金融机构(该机构也以MFC Club名义开展业务)。被通报机构正在奥克兰华人社区宣传一种固定回报的投资产品,该产品没有受到新西兰法律监管;此外该公司(或其附属公司)已经在其他国家被列入金融消费者警示名单。
报道称,金融市场管理局(FMA)是新西兰的金融市场监管机构,负责对金融服务和证券市场进行监管。
关于发布警告的原因,金融市场管理局表示,FMA对于MBI International(还以MFC Club为名开展经营)(MFC Club)正在新西兰推广的一项马来西亚客户忠诚计划表示忧虑。金融市场管理局收到报告称,MFC Club正在奥克兰中文社区内积极开展宣传推广活动。
金融市场管理局了解到MFC Club正在通过研讨会和推介会形式进行宣传推广,并接到报告称,关于MFC Club的陈述可能未经证实和/或虚假并具有误导性,此类陈述包括声称MFC Club是一项投资,而且任何投资的价值将每年翻倍。金融市场管理局注意到该计划不是在新西兰受到监管的产品,并建议人们在与MFC Club开展交易时谨慎从事。
此外,金融市场管理局表示,他们还注意到马来西亚国家银行(BNM)已将MBI International Sdn Bhd和M Face International Sdn Bdn列入其金融消费者警示名单,该名单包含未经相关法律和BNM监管法规授权或批准的公司和网站。
扩展资料:
2018年5月31日,公安部经侦局揭露7类传销陷阱,提醒公众提高警惕。其中,虚拟货币类传销、消费返利类传销、微信手游类传销、金融互助类传销涉及互联网,另外3种较为传统的传销类型——产品道具类传销、资本运作类传销、慈善互助类传销也不容忽视。
2017年11月,上海市公安机关会同全国多地公安机关破获“MBI”国际集团涉嫌组织领导传销案。据了解,2015年,犯罪嫌疑人王某等人通过上线介绍,在网上注册加入“MBI”(集团总部设于马来西亚)。
“MBI”打着“游戏理财计划”的幌子,在网上设立“MFC游戏理财平台”,将其推出的“易物币”(又称GRC、M币)打造成“虚拟货币”。“MBI”通过在线商城购物、线下商家交易等方式,使“易物币”发生流通,再通过举行宣讲会等形式,公开宣传投资“虚拟货币”只涨不跌等谎言。
据介绍,“MFC游戏代币理财”所到之处,众多受害人多年的血汗钱被席卷一空,众多家庭亲人反目、朋友成仇。
真正使参与者呈几何倍数增长的原因在于“动态收入”,也就是发展下线的奖励。和大多数传销骗局一样,“MBI”也设置了“直推奖”“对碰奖”“代数奖”等,根据发展下线的数量及投资额以代币形式赠送,加入者形成一个巨大的金字塔网络,其运作本质就是“先吃后”的庞氏骗局。
在警方提供的一段视频中,犯罪嫌疑人徐某说,这是一个“零和游戏”,投资者看中的是回报率,实际上,公司看中的是投资者的本金。据警方介绍,传销再换马甲,也离不开交纳入门费、发展下线、通过直接或间接发展下线获得报酬这三个特征,需要警惕微信手游类和金融互助类两种新类型传销。
据了解,“星火草原”“魔幻农庄”这类传销,借助微信、手游等更简单便捷的方式,与“互联网金融”“游戏理财”的宣传捆绑在一起,打造出“传播最快”的微信手游类传销。传销组织者谎称可以边玩游戏边致富,最大的特点是加入门槛低,玩家之间通过扫二维码加入游戏顺序,形成上下线关系,传播蔓延速度更快。
“诚信买卖宝”这类金融互助传销,以“资金盘”的俗称扬名网络世界,号称打造互助共赢平台。参与人必须先舍后得,通过在平台上自助匹配,先为他人提供资金帮助,才能获得被别人帮助的资格。金融互助类传销将设计点集中于资本,大玩资金游戏和金钱刺激,让更多参与者深陷其中无法破局,是迷惑性较强的一种传销模式。
今年3月的一天,山东省滕州市公安局网警大队发现,某生物科技有限公司涉嫌搞传销。公司负责人通过“购买数百元的日用品、护肤品”发展会员,会员之间按推荐关系在公司网站组建成金字塔状层级结构,制定层奖、量奖等营销制度,以会员发展下线的数量作为计酬、返利依据,引诱参加者发展下线。
滕州公安网警大队介绍,这一涉传组织营销手段搭上互联网“便车”。通过网络联系工厂生产某品牌日用品、护肤品,夸大功效,以进货价的5倍至10倍制定销售价格,通过微信聊天、实地讲课的方式向会员灌输发财梦想,宣传奖金制度。目前,这一案件仍在侦办中。
公安部经侦局有关人士说,传统的产品道具类传销不容忽视。如臭名昭著的“蝶贝蕾”传销案,便以产品为噱头,以销售护肤品、保健品、日用品等名义发展下线。
消费返利类传销与传统产品道具类传销有相似之处,但更为隐蔽。以“心未来”为典型代表的这类传销活动,打着电商或者微商的旗号,依托网络商城,用少量商品为道具,以“消费返利”“增值消费”为诱饵,引诱会员加入。表面上看似美好的“分享经济”,实际全是骗人套路。
参考资料来源:中国侨网-新西兰金融监管机构发中文警告 提醒华人警惕诈骗
中国工商报网-公安部经侦局揭露七类传销陷阱
今天的百科内容先分享到这里了,读完本文《「mfc是什么」mfc是什么牌子的打印机》之后,是否是您想找的答案呢?想要了解更多百科知识,敬请关注宝百科,您的关注是给小编最大的鼓励。