欢迎来到天天文库
浏览记录
ID:36343040
大小:204.75 KB
页数:53页
时间:2019-05-09
《《C++开发GIS系统》第3章MFC应用程序框架》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第3章MFC应用程序框架ForwithyNew本章各小节目录3.1MFC程序基本框架类和文件组成3.2MFC应用程序中各个框架类的作用3.3MFC应用程序的执行步骤分析3.4MFC应用程序设计结构体系剖析在第2章2.1.2小节用MFCAppWizard生成了一个完整的MFC应用程序Draw。相信读者在生成并对它编译执行时,对执行的结果是满意的,对用MFC编程一定会产生浓厚的兴趣。你可能会迫不及待的打开的源代码文件,寻找实际的执行代码。结果又肯定会让你感到大失所望。第一次打开这些文件时,你可能觉得自己在看一些甲
2、骨文的书籍,你连程序是从哪里执行,怎么执行的都无法找到,无法弄明白。不要失望,本章将对MFC应用程序的结构和工作流程进行分析。在以后的各章,将以一个基本GIS的开发为例,引导读者掌握MFC应用程序设计的核心技术。3.1MFC程序基本框架类和文件组成3.1.1基本程序框架类通过对应用程序Draw进行分析,可知普通的MFC应用程序包含着以下四个主要的类:文档类、视图类、主框架窗口类、应用类。程序的主要任务在这四个类中分配,AppWizard为每个类产生了各自的源文件。C++类在文件组织上一般分为两部分:头(包含)
3、文件(.h)和实现文件(.cpp)。头文件是.h文件,一般用来存放类、结构等的定义代码,通过include宏插入到实现文件中。实现文件是通常所见的.cpp文件,用来存放类的成员函数的实际代码。(1)文档类应用程序Draw的文档类名称是CDrawDoc,这是AppWizard根据项目名称默认取的名称,它是由MFC的Cdocument派生的。CDrawDoc类的头文件是drawdoc.h,实现文件是drawdoc.cpp。头文件中存放的是类的定义代码,实现文件中存放的是类的各个成员函数的实现代码。文档类负责存放程
4、序数据并读取磁盘文件数据,或将磁盘文件数据写入磁盘文件中。在建立一个应用程序项目时,在文档类中对应用程序所需要的数据资料进行管理。(2)视图类应用程序Draw中视图类的名称是CDrawView,它是由MFC的Cview类派生的。CDrawView类的头文件是drawview.h,实现文件是drawview.cpp。视图类负责显示文档类中的数据,可以显示在屏幕上,也可以输出到打印机或其他设备上。视图类也负责处理用户的输入。在一个矢量图形系统中,在屏幕上显示、在打印机上绘制图形的操作功能都是由视图类完成的。(3)
5、框架类在使用AppWizard生成应用程序Draw时,选择的是一个多文档选项(在图2-3中,选择的是Multipledocuments选项),所以应用程序Draw中包含着两个框架类:主框架类CMainFrame和子框架类CChildFrame。主框架类CMainFrame是由MFC的CMDIFrameWnd类派生的,其头文件是mainfrm.h,实现文件是mainfrm.cpp。主框架类CMainFrame提供了管理一个多文档界面(MDI)的主窗口的所有功能及管理窗口中的子窗口,用来显示一个标题、一个菜单条、
6、窗口最大化和最小化键、边框、一个系统菜单、工具条以及状态条等。子框架类CChildFrame是由MFC的CMDIChildWnd类派生的,其头文件是childfrm.h,实现文件是childfrm.cpp。子框架类的功能是用来管理子窗口。一个子窗口非常像主窗口,但子窗口仅能在主窗口内显示,而不在Windows桌面上,子窗口没有自己的菜单条,但它分享主窗口的菜单,程序自动将框架窗口菜单作为当前子窗口的菜单。(4)应用类应用程序Draw的应用类是CDrawApp,它是由MFC的CWinApp类派生的。其头文件是d
7、raw.h,实现文件是draw.cpp。应用类负责管理程序的总体,它完成不属于任何其他三类的一般工作,例如初始化程序以及进行最后的程序清除工作。每个MFC应用程序必须正确的生成由CWinApp派生类的一个实例(对象)。3.1.2应用程序主要源文件组成在组成应用程序Draw的源文件中,除了五个主要类的源文件外(10个源文件),还有其他一些文件,对他们简述如下:draw.rc资源定义文件,包含程序资源的定义(菜单、对话框、字串、键盘加速键和图标等)。一般情况下,这个文件是由AppStudio进行可视化编辑维护,一
8、般不用手工修改这个文件。draw.dsw工作区信息文件,存储着一个工作区的组成情况(如包含哪些程序项目、程序项目的依赖关系等),用来存储和打开一个工作区。draw.clwClassWizard信息存储文件,存储ClassWizard编辑存在的类和增加新类的信息,文件也包含了ClassWizard建立和编辑各种消息处理函数和映射变量等的信息。draw.dsp程序项目工程文件,存储着一个应用程序项目所包
此文档下载收益归作者所有