轻松学Visual C之MFC应用程序.ppt_第1页
轻松学Visual C之MFC应用程序.ppt_第2页
轻松学Visual C之MFC应用程序.ppt_第3页
轻松学Visual C之MFC应用程序.ppt_第4页
轻松学Visual C之MFC应用程序.ppt_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 MFC应用程序,MFC是微软基于Windows API构建的一个应用程序框架。使用该框架开发Windows应用程序,不仅可以缩短软件的开发周期,而且也便于维护。本章主要学习如何利用向导来创建一个MFC应用程序,以及MFC应用程序的执行流程。,3.1 MFC概述,当第一次看到MFC这个名词的时候,往往会因为陌生而产生莫名的害怕。它是Microsoft Foundation Classes的缩写,意思就是微软基础类库。MFC是一个程序架构,简单的理解就是微软的技术大牛们把Windows API函数进行封装,然后用一些精妙绝伦的技巧把它们联系在一起,最后整理出的一套几乎适用于所有应用程序的框

2、架。我们基于这个框架和类库进行编程可以大大缩短我们的开发周期。 MFC之所以具有成为应用程序框架的资格,最重要的一个特征就是它能够将管理数据的程序和负责数据显示的程序代码分离出来。这就是MFC引入的“文档/视图”结构,理解这个结构是编写基于MFC程序的关键。,3.2 快速创建MFC应用程序,这一节,我们利用VC+6.0集成开发环境提供的向导来创建一个MFC应用程序,并介绍创建过程每一个选项的作用。最后为其添加代码实现输出“Hello World!”。,3.2.1 利用MFC AppWizard创建项目,1.选择应用程序界面类型 2.选择数据库支持类型 3.选择ActiveX技术支持类型 4.选

3、择界面风格 5.其它选项 6.确认类名和文件名,3.2.2 为创建好的MFC程序添加代码,可以看到,MFC AppWizard 为用户生成了一个相当完善的标准Windows应用程序框架。该程序窗口拥有自己的菜单、工具栏和状态栏,可以移动位置或缩放大小。但是它不能完成任何任务,就像我们上一章中用Windows API编写的窗口程序框架一样,它还需要用户进行进一步的完善。在这个应用程序框架的基础上,完成自己特殊需要的功能。,3.3 MFC程序的执行流程概述,我们在利用Windows API函数编写应用程序时,一定还记得WinMain()函数和用来处理消息循环的窗口过程WndProc()函数。这种应

4、用程序的运行过程是比较容易理解的,WinMain()函数是应用程序的入口。在该函数中完成程序的初始化工作,然后进入消息循环,具体的消息由窗口过程函数中的switch/case语句处理,直至应用程序结束运行。但是,我们在浏览Hello应用程序的代码时,并找到没有找到WinMain()函数。,3.3 MFC程序的执行流程概述,MFC应用程序的初始化是在InitInstance()函数中完成的,操作系统向应用程序发送的消息则由消息映射表映射到特定的函数进行处理。如果进一步深入地研究MFC的源代码,可以发现WinMain()函数还是存在的,只是MFC对此进行了封装,使得用户不需要直接处理WinMain

5、()函数。在应用程序启动的时候,应用程序框架将调用 WinMain()函数。该函数执行一些标准的初始化过程,如注册窗口类、创建窗口等;然后该函数将调用应用程序对象的成员函数,初始化应用程序并进入应用程序的消息循环。,3.3 MFC程序的执行流程概述,在初始化应用程序对象的时候,WinMain()函数将调用应用程序类的成员函数InitApplication()和InitInstance()成员函数;接着调用应用程序类的Run()成员函数进入消息循环;在应用程序终止的时候,WinMain()调用应用程序类的ExitInstance()成员函数退出应用程序。,3.3 MFC程序的执行流程概述,3.4 小结,本章首先对MFC的定义做了简要的概述;然后利用App Wizard创建了一个单文档的MFC应用程序,并介绍了每一步各选项的作用;最后对MFC执行流程做了简要的概述。本章的重点内容是理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论