- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
深入浅出话VC2)——MFC的本质
一、引言
上一专题中,纯手动地完成了一个Windows应用程序,然而,在实际开发中,我们大多数都是使用已有的类库来开发Windows应用程序。MFC(Microsoft Foundation Class, 微软基础类库)是微软为了简化程序员的开发工作而将Windows API 封装到C++类中,利用这些类,程序员可以有效地完成Windows平台下应用程序的开发。本专题将详细剖析它。
二、利用向导创建一个MFC程序
用于帮助有效地开发Windows应用程序的类库除了MFC外,还有其他开源类库提供,比如说QT,只是QT不是微软开发的罢了,为了更好地剖析MFC,下面让我们用Visual Studio中的MFC模板和向导工具来创建一个基于MFC的单文档(SDI)应用程序。
启动Visual studio 2010,单击文件(FIle)菜单——新建项目——项目,在出现的项目窗口中选择Visual C++ 语言,然后选择MFC应用程序,并输入项目的名称为SDIMFC,具体如下图所示。
2. 输入项目名称后点击确定按钮,将出现MFC应用程序向导窗口,点击下一步,应用程序类型选择:单个文档,如下图所示:
3. 点击下一步,出现MFC向导的第三个对话框,复合文档支持保持默认选择,然后在出现的对话框中一直点击下一步来完成一个单文档MFC应用程序的创建。下面,按下Ctrl+F5来运行MFC应用程序, 之后将看到我们创建的MFC应用程序界面,具体如下图所示:
在上面的程序中,我们并没有编写任何代码,运行它后就生成了一个带标题栏,系统菜单,具有最大化、最小化框和一个可调边框的应用程序,这一切的工作都是由MFC的向导工具帮我们完成,即该向导工具为我们生成了很多代码,下面就以这个简单的MFC程序来分析下MFC框架。
三、MFC框架详细解析
我们看下用MFC向导工具帮我们生成的哪些代码。你可以在VS中点击类视图选项卡(如果VS界面上没有看到类视图的, 可以通过菜单栏视图—类视图的方式显示出来),就可以看到如下图所示的类。
从上图可以发现,在MFC中,类的命名都是以字母“C”开头的,这种命名方式只是一种约定,让开发人员很快识别出该类是否属于MFC类库中的类。从图片可以看到,前面创建的单文档应用程序中有15个类,但这里我们只分析4个基本类,因为这4个基本类是每个Windows应用程序都会包含的,这4个类是:CMainFrame类、C+工程名(SDIMFC)+App类、C+工程名+Doc类(即CSDIMFCDoc类)和CSDIMFCView类(也是C+工程名+View的结构)。这4个类的基类都是MFC中类,基类的查看可以通过在VS类视图点击图标。关于MFC中类图层次结构图可以参考MSDN:/zh-cn/library/ws8s10w4.aspx,下图(摘自MSDN)很好地诠释了MFC中层次结构图类别。
3.1 MFC应用程序中的WinMain函数
前面对我们创建的MFC应用程序结构进行了一个简单的介绍,下面让我们深入剖析MFC应用程序的实现原理,在前一专题讲到,所有Window下窗口应用程序都要遵循这样一个过程:程序首先进入WinMain函数,然后设计窗口类、注册窗口类、创建窗口、显示和更新窗口、最后进入消息循环,将消息传递给窗口过程函数进行处理。然后在MFC应用程序中,我们使用VS的查找工具在MFC项目中查看WinMain函数却找不到,再查看CreateWindow函数也找不到,那么是不是MFC应用程序不需要WinMain函数,不需要创建窗口吗?这个疑问答案肯定是否定的,因为MFC应用程序一样是Windows应用程序,所以一定遵循上一专题介绍的过程,只是MFC提供的类帮我们对这些类进行了封装,这些函数都存在于MFC的源代码中,下面我们一起去找找程序的入口WinMain函数。
既然WinMain函数存在与MFC源码中,自然我们就要知道MFC源码在哪里了,在安装Visual studio的时候,我们已经安装了MFC的源代码,具体路径为:VS的安装路径\VC\atlmfc\src\mfc,如果你本机把VS安装到D:\Program Files(x86)的话,则MFC源代码路径在:D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\src\mfc。 下面利用Windows搜索工具查看WinMain函数的存在那个C++类中,在搜索之前,需要设置下Windows搜索工具,默认情况下,Windows搜索工具搜索内容在没有索引的位置,只搜索文件名的,这里需要设置为搜索文件名和内容,具体设置如下图所示(Win7下选择工具—文件夹选项即可显示下图):
设置完成之后,在搜
您可能关注的文档
- 涉及经济犯罪嫌疑的商事案件有关法律问题探析.doc
- 涞水-京涞新城(首功能疏解试验区总体规划)附图.docx
- 涤棉织物柔软整理前导湿透气性能变化分析.doc
- 润华机动车安全检测限公司资质认定实验室监督自查表.doc
- 润肺止咳是指使用养润肺中药治疗阴虚咳嗽.doc
- 涟源市“十三五”规研究报告.doc
- 涞源县“十三五”规研究报告.doc
- 液体点滴速度监控装(何博).doc
- 润筑新A级防火保温项目可行性报告.doc
- 涡阳县“十三五”规研究报告.doc
- 第12课 大一统王朝的巩固 课件(20张ppt).pptx
- 第17课 君主立宪制的英国 课件.pptx
- 第6课 戊戌变法 课件(22张ppt).pptx
- 第三章 物态变化 第2节_熔化和凝固_课件 (共46张ppt) 人教版(2024) 八年级上册.pptx
- 第三章 物态变化 第5节_跨学科实践:探索厨房中的物态变化问题_课件 (共28张ppt) 人教版(2024) 八年级上册.pptx
- 2025年山东省中考英语一轮复习外研版九年级上册.教材核心考点精讲精练(61页,含答案).docx
- 2025年山东省中考英语一轮复习(鲁教版)教材核心讲练六年级上册(24页,含答案).docx
- 第12课近代战争与西方文化的扩张 课件(共48张ppt)1.pptx
- 第11课 西汉建立和“文景之治” 课件(共17张ppt)1.pptx
- 唱歌 跳绳课件(共15张ppt内嵌音频)人音版(简谱)(2024)音乐一年级上册第三单元 快乐的一天1.pptx
文档评论(0)