收藏 分享(赏)

C++教程,从入门到精通,chap-10.ppt

上传人:gsy285395 文档编号:4783248 上传时间:2019-01-12 格式:PPT 页数:25 大小:145.50KB
下载 相关 举报
C++教程,从入门到精通,chap-10.ppt_第1页
第1页 / 共25页
C++教程,从入门到精通,chap-10.ppt_第2页
第2页 / 共25页
C++教程,从入门到精通,chap-10.ppt_第3页
第3页 / 共25页
C++教程,从入门到精通,chap-10.ppt_第4页
第4页 / 共25页
C++教程,从入门到精通,chap-10.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、创建MFC Windows应用程序,什么是MFC Windows程序设计基础 单文档应用,什么是MFC,MFC的优点 MFC的功能 如何使用 MFC,什么是MFC,MFC是指Microsoft 基础类库(Microsoft Foundation Class Library)。 这个类库是在 Microsoft Windows 中进行程序设计的应用程序框架。MFC的所有代码都是用 C+ 编写的,并提供了许多代码以方便程序设计人员完成各种任务,例如管理窗口、菜单和对话框,执行基本输入/输出,存储数据对象集合等。程序设计人员只须将自己要创建的应用程序的相关代码添加到这个框架中就可以完成相关功能。由于

2、C+具有面向对象程序设计的性质,所以可以容易地扩展或重写MFC框架所提供的各种基本功能。,MFC的优点,首先,MFC 缩短了开发时间,使代码的可移植性更强,并在提供了巨大程序设计支持的同时不降低编程的自由度和灵活性; 其次,它使程序员可以轻松地使用一些通常认为是很难掌握的用户界面元素和技术(如 ActiveX 技术、OLE 和 Internet 编程); 另外,MFC 简化了通过数据访问对象 (DAO) 和开放式数据库连接 (ODBC) 进行的数据库编程,以及通过 Windows 套接字进行的网络编程。,MFC的功能,MFC除了从根本上支持 Microsoft Windows 程序设计之外,还

3、提供了许多专业化支持OLE、自动化、ActiveX 控件、Internet 程序设计、Windows 公共控件、DAO 数据库程序设计、ODBC 数据库程序设计、多线程程序设计、网络程序设计、可移植性等。 但是,MFC作为一种通用的编程框架,并不能预见每一位程序设计人员的每一个需求。因此,如果要使用MFC来生成符合特定需求的程序,还必须添加自己的代码。 另外,MFC并不是C+的运行时库。它不是通用函数库,也不能在另外的非 MFC 代码中调用 MFC 类成员函数。,如何使用 MFC,在创建MFC应用程序时可以使用Visual C+ .NET所提供的“MFC 应用程序向导”来为应用程序创建应用程序

4、框架,还可以根据要创建的应用程序的特性修改向导的相应选项。 然后使用 Microsoft Visual C+ .NET提供的资源编辑器来以可视的方式设计用户界面的各个元素,使用“类视图”为这些元素添加相关代码,并使用类库实现应用程序的特定逻辑,Windows程序设计基础,创建一个最简单的Windows程序 程序运行流程分析 框架窗口类 文档模板,视图类 文档/视图结构 程序员的工作,Windows程序设计基础,在MFC框架中,最重要的两个概念就是文档(Document)和视图(View)。在使用MFC框架编写Windows应用程序时,程序员最常编写的部分就是文档类和视图类,文档和视图,把一个应

5、用分成文档和视图的结构是基于MFC框架应用程序的一个重要特征。它的实质就是将数据本身与用户对数据的观察和操作分离开来,所有的数据变化都在文档类中进行管理,同时为视图的访问提供一个接口。而视图则调用这个接口来响应用户的操作,进行数据修改,并不断更新文档的显示。由此可知,允许一个文档拥有多个视图。,创建一个最简单的Windows程序,打开Microsoft Visual Studio .NET 2003,然后执行“文件”|“新建”|“项目”命令,打开“新建项目”对话框。 在这个对话框的左边展开“Visual C+项目”节点,选中MFC节点,在右边选择“MFC应用程序”,并在下面的两个文本框中分别输

6、入要建立的应用的名称和希望放置应用程序的路径 在设置完成之后,单击“确定”按钮,进入“MFC应用程序向导”。,框架窗口类,CMainFrame类是MFC为应用程序的主框架窗口创建的派生的框架窗口类,它定义了应用程序的界面特性,包括菜单、工具栏和状态栏。 如果应用程序是单文档的(称为SDI),则CMainFrame 类从CFrameWnd 类派生;如果应用程序是多文档的(称为MDI),则CMainFrame 类从CMDIFrameWnd 类派生。,程序的执行流程,在BOOL CMyApp:InitInstance函数中会有一段代码用于在创建一个新的运行实例时,让系统根据文档模板生成新的对象,包括

7、CMainFrame对象、CMyDoc对象和CMyView对象。而CMainFrame对象就是应用的主框架窗体对象。由于CMyApp:InitInstance函数是在程序初始化的时候运行的,所以所有的创建过程都会在程序初始化时完成。 在创建CMainFrame对象时,系统会向主框架窗口发一条WM_CREATE消息,要求创建主框架窗口,而主框架窗口会调用OnCreate函数来处理这个消息。OnCreate函数是CMainFrame定义的,作用是对主框架窗口进行初始化。然后系统调用CWnd类定义的ShowWindow函数,将主框架窗口显示在屏幕上,此函数调用也是在CMyApp:InitInstan

8、ce函数中实现的。,文档模板,在10-01.cpp中定义的BOOL CMyApp:InitInstance函数中,有一段代码用于使用文档模板创建新的对象,这些对象包括CmainFrame, CmyDoc和CmyView 3个新的对象。,文档类,文档是指一组数据的集合。在MFC中,文档负责存储数据和管理数据的打印,并可以协调和更新多个数据视图。 实现文档操作的类是CDocument,它作为基类产生了很多的派生类用于实现文档数据的读写操作。,视图类,视图用于显示数据并管理用户与数据之间的交互,包括选择和编辑。视图负责在屏幕上显示一个文档,解释用户的输入并对文档进行相应的操作,还可以显示图像用以打印

9、和打印预览。 MFC使用CView类来实现视图。它的很多派生类支持不同类型的窗口。 CScrollView可以实现滚动条 CFormView可以实现表格 CEditView可以实现文本编辑。,文档/视图的核心,CDocument类 用于存储或控制程序数据,并为程序员定义的文档类提供基本功能。 CView类 是程序员定义的视图类的基类。视图附加到文档上用于在屏幕上呈现文档的图像,并将用户输入解释为对文档的操作。视图还为打印和打印预览呈现图像。 CframeWnd类 用于在文档的一个或多个视图周围提供框架。 CDocTemplate(或 CsingleDocTemplate和CMultiDocTe

10、mplate)类 负责协调给定类型的一个或多个现有文档,并负责创建此类型的正确文档、视图和框架窗口对象。,文档和视图之间的关系,单文档应用,单文档类型和多文档类型 消息驱动 创建Hello World程序,单文档类型和多文档类型,单文档类型指在文档上具有单个视图,而且每个文档只有一个框架窗口的文档类型。 多文档类型则可以同时处理几个不同的文档。 实现单文档类型的界面称为单文档界面(SDI),这种应用程序一次只允许打开一个窗口的实例。 实现多文档类型的界面称为多文档界面(MDI),这种应用程序允许通打开一个窗口的多个实例。,消息驱动,程序需要处理的消息 Windows消息 此类消息主要包括除了W

11、M_COMMAND之外的以前缀 WM_开头的消息。 控件通知 指从控件和其他子窗口向自己的父窗口发送的 WM_COMMAND 通知消息。 命令消息 指用户界面对象(菜单、工具栏按钮和快捷键)发出的 WM_COMMAND 通知消息。,创建Hello World程序,现场创建讲解,创建一个简单的文本编辑器,现场创建讲解,多文档应用,MFC创建的MDI应用程序的结构 增强文本编辑器的功能,MFC创建的MDI应用程序的结构,使用MFC应用程序向导创建应用程序时,若将应用程序类型中选择为多文档类型,则创建完成后可以生成一个多文档的应用程序 在多文档应用程序中,虽然在一个主框架中允许有多个子框架,但是同时只能有一个子框架处于活动状态,并且主框架中的所有菜单、工具栏等的操作都是针对这个子框架的,增强文本编辑器的功能,现场创建讲解,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > C/C++资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报