12文档与视图(windows 编程技术)
- 格式:doc
- 大小:1.07 MB
- 文档页数:49
信息技术题库与参考答案一、单选题(共100题,每题1分,共100分)1.计算机的通用性使其可以求解不同的算术和逻辑运算,这主要取决于计算机的()。
A、指令系统B、存储功能C、高速运算D、可编程序正确答案:A2.下面几个不同进制的数中,最小的数是( )。
A、十进制数35B、十六进制数2EC、二进制数1011100D、八进制数47正确答案:A3.staff的定义如下id INTEGER name CHAR(20) dept INTEGER job CHAR(20) years INTEGER salary DECIMAL(10,2) comm DECIMAL(10,2) 下面哪个语句可以按照job和salary的升序排序来返回所有员工的A、SELECT id,name,salary,dept,job,years,comm FROM staff ORDER BY 4,6B、SELECT id,name,salary,dept,job,years,comm FROM staff GROUP BY 4,6C、SELECT id,name,salary,dept,job,years,comm FROM staff ORDER BY 5,3D、SELECT id,name,salary,dept,job,years,comm FROM staff GROUP BY 5,3正确答案:A4.Excel中,用户可以设置输入数据的有效性,在“数据有效性”选项卡可设置数据输入提示信息和输入错误提示信息,其作用是限定输入数据的( )A、小数的有效位B、类型C、类型和范围D、范围正确答案:C5.()特点是处理的信息数据量比较大而数值计算并不十分复杂。
A、工程计算B、数据处理C、实时控制D、自动控制正确答案:B6.微机的性能指标中的内存容量是指()。
A、RAM的容量B、RAM和ROM的容量C、软盘的容量D、ROM的容量正确答案:A7.关于Windows 的文件组织结构, 下列说法中错误的一个是( )A、每个子文件夹都有一个“父文件夹”B、每个文件夹都可以包含若干“子文件夹”和文件C、每个文件夹都有一个名字D、磁盘上所有文件夹不能重名正确答案:D8.概念模型是将现实世界的客观对象抽象为一种信息结构,它并不依赖于计算机系统,它的基本语义单位是(A、位与字节B、概念与模型C、实体与联系D、数据与信息正确答案:C9.用以实现客户机图形用户接口与已有的字符接口方式的服务器应用程序之间的互操作的是()。
信息技术word2024教案全集-(带附件)信息技术Word2024教案全集一、教案概述本教案是针对信息技术课程中Word2024软件的应用进行编写的。
通过对Word2024软件的全面介绍和操作指导,旨在使学生熟练掌握Word2024的基本功能和高级技巧,提高文档编辑和排版的能力,培养学生的信息素养和计算机操作技能。
二、教学目标1.理解Word2024软件的基本概念和功能特点。
2.掌握Word2024软件的基本操作,包括文档创建、编辑、格式化等。
3.学会使用Word2024软件的高级功能,如图表、图片、超等。
4.能够运用Word2024软件进行文档排版和美化。
5.培养学生的信息素养和计算机操作技能,提高文档编辑和排版的能力。
三、教学内容1.Word2024软件概述2.Word2024基本操作3.Word2024高级功能4.文档排版和美化5.综合应用案例四、教学安排本教案共分为15个课时,每个课时约为45分钟。
第1课时:Word2024软件概述第2课时:Word2024基本操作(1)第3课时:Word2024基本操作(2)第4课时:Word2024基本操作(3)第5课时:Word2024基本操作(4)第6课时:Word2024高级功能(1)第7课时:Word2024高级功能(2)第8课时:Word2024高级功能(3)第9课时:Word2024高级功能(4)第10课时:文档排版和美化(1)第11课时:文档排版和美化(2)第12课时:文档排版和美化(3)第13课时:综合应用案例(1)第14课时:综合应用案例(2)第15课时:综合应用案例(3)五、教学方法和手段1.讲授法:通过讲解Word2024的基本概念和功能特点,使学生了解软件的使用方法和技巧。
2.演示法:通过实际操作演示Word2024的基本操作和高级功能,让学生直观地了解软件的操作流程。
3.练习法:通过布置练习任务,让学生动手操作,巩固所学知识和技能。
mfc课程设计要求一、教学目标本课程的教学目标是使学生掌握MFC(Microsoft Foundation Classes)的基本概念、原理和编程方法,培养学生运用MFC进行Windows应用程序开发的能力。
具体目标如下:1.知识目标:(1)理解MFC的体系结构及其与Windows API的关系;(2)掌握MFC类的基本用法,包括窗口、控件、文档视图等;(3)熟悉MFC的事件处理机制;(4)掌握MFC的消息映射和消息处理;(5)了解MFC的资源管理和内存管理;(6)掌握MFC的文件操作和数据库编程。
2.技能目标:(1)能够运用MFC创建简单的Windows应用程序;(2)能够自定义MFC类和对象,实现特定功能;(3)能够使用MFC进行界面设计和事件处理;(4)能够进行MFC程序的调试和优化;(5)能够阅读和理解MFC相关的技术文档。
3.情感态度价值观目标:(1)培养学生对计算机科学的兴趣和热情;(2)培养学生团队合作精神和自主学习能力;(3)培养学生良好的编程习惯和职业道德。
二、教学内容本课程的教学内容主要包括以下几个部分:1.MFC概述:介绍MFC的起源、发展及其在Windows应用程序开发中的应用;2.MFC基本概念:讲解MFC的体系结构、类库结构、对象模型等基本概念;3.MFC类和对象:介绍MFC类的基本用法,包括窗口、控件、文档视图等;4.MFC事件处理:讲解MFC的事件机制,包括消息映射、消息处理等;5.MFC资源管理:讲解MFC的资源管理,包括内存管理、界面资源管理等;6.MFC文件操作和数据库编程:介绍MFC的文件操作和数据库编程方法;7.MFC实战项目:通过实战项目,使学生掌握MFC应用程序的开发过程和方法。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:用于讲解MFC的基本概念、原理和编程方法;2.案例分析法:通过分析实际项目案例,使学生掌握MFC的应用技巧;3.实验法:让学生动手实践,培养实际操作能力。
(1) 项目工作区一般在集成开发环境的左侧。
它展示一个工程的几个方面,它们分别是类视图、资源视图和文件视图。
(2) 编译程序的快捷键是Ctrl + F7,链接的快捷键是F7 ,运行程序的快捷键是Ctrl + F5。
(3) 项目工作区文件的扩展名为.dsw。
(4) 应用程序向导AppWizard的作用是帮助用户一步步生成一个新的应用程序,并且自动生成应用程序所需的基本代码,通过ClassWizard可以增加消息映射和成员变量。
(5) 菜单选择可以通过两种方法来进行:一种是;另一种是。
(6) 编译微型条工具栏最右边按钮的功能是设置断点。
2. 选择题(1) 工程文件的扩展名是 b 。
A. .exe B. .dsp C. .dsw D. .cpp(2) 设置断点的默认方式是 d 。
A. LocationB. DataC. MessageD. Breakpoints(3) 用应用程序向导AppWizard创建的C++源文件,应选择 a 选项卡。
A. FilesB. ProjectsC. WorkspacesD. Other Documents(4) Standard工具栏中最左边按钮与 c 菜单命令的功能一样。
A. NewB. New FileC. New Text FileD. New Workspace3. 判断题(1) 用快捷键F9既可设置断点,又可取消断点。
( T )(2) 用户可以通过Tools | Customize菜单命令设置集成开发环境的工具栏。
( T )(3) 通过应用程序向导AppWizard建立的程序不能被立即执行。
( T )(4) 调式程序时,会同时出现Variable窗口和Watch窗口。
( T )4. 简答题(1) 什么是工程? 它是由什么组成的?在Visual C++集成开发环境中,把实现程序设计功能的一组相互关联的C++源文件、资源文件以及支撑这些文件的类的集合称为一个工程。
MFC原理结构说明MFC(Microsoft Foundation Classes)是一种在Windows平台上开发图形用户界面(GUI)的框架。
MFC提供了一组类、函数和宏,用于简化Windows应用程序开发过程。
本文将对MFC的原理和结构进行详细说明。
一、MFC的原理1. 类与对象:MFC使用面向对象的编程模型,所有的窗口、控件、消息处理程序等都是通过类来定义和创建的。
每个MFC应用程序都包含一个CWinApp类的对象,这个对象是整个应用程序的入口点。
2. 消息映射机制:在MFC中,消息是Windows事件的一种表示。
MFC使用消息映射机制来处理这些消息。
消息映射机制是程序员在类中定义的一种技术,它将特定消息与对应的消息处理函数关联起来。
当收到消息时,MFC会自动调用相应的消息处理函数进行处理。
3. 消息与事件:在MFC中,消息是Windows事件的抽象表示,而事件是用户界面中的交互行为。
MFC提供了一系列预定义的消息类型,如鼠标点击、按键、窗口关闭等,程序员只需要在类中覆盖对应的消息处理函数,就可以处理这些消息。
4. 窗口类和控件类:在MFC中,窗口类和控件类是界面元素的基础。
MFC提供了一组窗口类(如CWnd、CFrameWnd)和控件类(如CButton、CEdit),程序员可以通过继承这些类来创建自定义的窗口和控件。
5. 文档视图模型:MFC中引入了文档视图模型(Document-View Model)的概念,用于实现应用程序的数据和界面的分离。
文档类(CDocument)管理应用程序的数据,视图类(CView)用于显示数据,而框架窗口类(CFrameWnd)则用于协调文档和视图之间的交互。
二、MFC的结构1. 应用程序类(CWinApp):应用程序类是MFC应用程序的入口点,它派生自CWinApp类。
应用程序类负责初始化应用程序的环境,包括注册窗口类、创建主窗口、加载并运行消息循环等。
2024年高等教育自学考试自考《计算机应用基础》复习试题(答案在后面)一、单项选择题(本大题有30小题,每小题1分,共30分)1、计算机应用的基础领域中,与人类语言处理相关的技术是:A. 数据库技术B. 专家系统C. 计算机图形学D. 多媒体技术2、在Word文档编辑中,要显示出文档中页码的文字版式,应该使用以下哪个功能?A. 页眉和页脚B. 分节符C. 查找和替换D. 页面设置3、在Windows 10中,以下哪个功能可以帮助用户查找电脑中的文件或文件夹?A. 控制面板B. 开始菜单C. 搜索栏D. 文件夹视图4、以下哪种编程语言不属于高级编程语言?A. C语言B. JavaC. HTMLD. Python5、在计算机网络中,负责完成数据传输功能的是哪一层?A. 物理层B. 数据链路层C. 网络层D. 传输层6、下列哪个操作系统不是由微软公司开发的?A. Windows XPB. Windows 7C. LinuxD. Windows 107、在计算机中,下列哪种存储设备属于外部存储器?A、CPUB、内存C、硬盘D、显卡8、在Windows操作系统中,以下哪个功能可以通过“开始”菜单中的“控制面板”实现?A、查看当前计算机的系统信息B、创建新的用户账户C、更改系统时间D、查看并管理文件9、以下哪项是计算机病毒的主要特点?A、传染性、隐蔽性、潜伏性、破坏性B、稳定性、高效性、易用性、兼容性C、可访问性、易激活性、快速性、协作性D、安全性、可靠性、稳定性、效率性 10、在Windows操作系统中,当一个程序窗口被最小化后,该程序将?A、停止运行B、暂停运行C、仍在后台运行D、卸载11、在Windows操作系统中,下列关于“我的电脑”的描述中,不正确的是:A. “我的电脑”中包含了计算机上的所有硬件设备B. “我的电脑”可以访问网络上的其他计算机资源C. “我的电脑”中包含了文件系统中的外部存储设备D. “我的电脑”是对计算机硬件资源的统称,不包含软件资源12、关于计算机程序语言,以下说法中不正确的是:A. 高级语言编写的程序需要先编译成机器语言,才能被计算机执行B. 机器语言是计算机能够直接理解和执行的语言C. 解释型语言不需要编译,可以直接在计算机上执行源代码D. 汇编语言是一种低级语言,它可以与计算机硬件直接打交道13、在Windows操作系统中,以下哪个快捷键可以打开“开始”菜单?A、Ctrl + Alt + DeleteB、Alt + TabC、Ctrl + EscD、Win + L14、在Excel中,以下哪种操作可以将选定的单元格内容填充到相邻的单元格中?A、按住Ctrl键拖动填充句柄B、选择“填充”菜单中的“向下填充”C、按住Shift键拖动填充句柄D、按住Alt键拖动填充句柄15、下列哪一项不是操作系统的主要功能?A. 文件管理B. 内存管理C. 用户接口管理D. 数据库管理16、在Windows操作系统中,用于查看网络连接状态的命令是?A. ipconfigB. netstatC. pingD. tracert17、在Windows操作系统中,关于快捷方式的说法,下列哪项是正确的?A. 快捷方式是应用程序本身,不是链接B. 快捷方式只是应用程序的一个副本C. 快捷方式可以指向任何可执行文件D. 快捷方式不能改变应用程序的执行路径18、在Word文档中,下列哪项操作可以实现分栏显示?A. 点击“视图”菜单中的“页面布局”B. 点击“视图”菜单中的“分栏”C. 点击“格式”菜单中的“分栏”D. 点击“工具”菜单中的“分栏”19、在Windows操作系统中,以下哪个操作可以用来改变文件名?A、右键点击文件名,选择“重命名”,输入新名称后按回车B、双击文件名,输入新名称后按回车C、单击文件名,直接输入新名称后按回车D、右键点击文件名,选择“剪切”,再新建文件夹重命名 20、在Excel中,使用哪个函数可以进行数值的求和?A、SUMIFB、AVERAGEC、MAXD、SUM21、在Word 2010中,以下哪个操作可以取消对文档的格式设置?A. 按Delete键B. 按Ctrl+Space键C. 按Ctrl+Z键D. 按Ctrl+X键22、在Excel 2010中,以下哪个功能可以快速清除单元格的数据?A. 删除快捷键(如Del键或Delete键)B. 快速填充功能C. 格式刷功能D. 清除内容按钮(如Home选项卡中的“清除内容”按钮)23、在Windows操作系统中,以下哪个命令可以用来查看当前计算机的IP地址?A. ipconfigB. ipconfig /allC. ipconfig /releaseD. ipconfig /renew24、在Excel中,若要删除一个已经插入的图表,以下哪个步骤是正确的?A. 点击图表,然后选择“删除”命令B. 在图表上右击,选择“删除”命令C. 在“插入”选项卡下,点击“图表”按钮,然后选择“删除”命令D. 在“视图”选项卡下,点击“图表”按钮,然后选择“删除”命令25、在Windows操作系统中,下列哪个菜单命令可以用来查找文件或文件夹?A)查找B) 搜索C) 运行D) 打开26、在Word文档中,以下哪个快捷键可以插入当前日期?A)Ctrl + D B) Ctrl + F C) Ctrl + I D) Ctrl + S27、在Windows 10中,要根据屏幕面积缩放整个系统的大小,可以使用以下哪个操作?A)右击“开始”按钮,在弹出的菜单中选择“系统”,然后选择“显示设置”,最后点击“缩放与布局”选项下的“缩放”滑块调整B)右击任务栏空白处,在弹出的菜单中选择“显示设置”,然后点击“缩放与布局”选项下的“缩放”滑块调整C)右击桌面空白处,在弹出的菜单中选择“显示设置”,然后点击“缩放与布局”选项下的“缩放”滑块调整D)右击桌面空白处,在弹出的菜单中选择“控制面板”>“外观和个性化”>“调整屏幕分辨率”,然后调整缩放比例28、以下哪一项不是计算机网络的基本功能?A)数据通信B)分布式数据处理C)增加可靠性D)把所有计算机连接在同一物理空间内29、在Windows操作系统中,以下哪个不是用来搜索文件或文件夹的快捷键?A. Ctrl + FB. Alt + FC. Ctrl + SD. F3 30、在Excel中,要快速调整一行或一列的列宽和行高,可以使用以下哪个工具?A. 格式工具栏B. 行号和列号C. 罗盘图标D. 粘贴和填充工具箱二、填空题(本大题有15小题,每小题1分,共15分)1、在Windows操作系统中,用于显示所有已安装的程序的窗口是______ 。
2228班2022—2023学年第一学期期末考试试卷信息技术(2228班、2229班、2230班、2231班)一、选择题(40小题,每题2分,共80分)1. Word文档的扩展名是()。
[单选题] *A、.pptxB、.txtC、.xslxD、.docx(正确答案)2. Word主窗口水平滚动条的右侧有四个显示方式切换按钮:“普通视图”、“Web版式视图”、“页面视图”和()。
[单选题] *A、大纲视图(正确答案)B、主控文档C、其他视图D、全屏显示3.要把插入点光标快速移到Word文档的头部,应按组合键()。
[单选题] *A 、Ctrl+PageUpB、Ctrl+↓C、Ctrl+Home(正确答案)D、Ctrl+End4. 在使用Word文本编辑软件时,要将光标直接定位到文件末尾,可用()键。
[单选题] *A、 Ctrl+PageUPB、 Ctrl+PageDownC、 Ctrl+HomeD、 Ctrl+End(正确答案)5.打开一个Word文档修改完后,需要保存在其他目录下,请选择正确的命令()。
[单选题] *A “常用”工具栏上的“保存”图标B“文件”菜单中的“保存”命令C、“文件”菜单中的“另存为”命令(正确答案)D、“页面设置”对话框中的“页边距”选项页6.在编辑状态,依次打开d1.doc、d2.doc、 d3.doc、d4.doc四个文档,当前的活动窗口是()的窗口。
[单选题] *A、d1.docB、d2.docC、d3.docD、 d4.doc(正确答案)7. 在Windows查找文件或文件夹时,常常在文件或文件夹名中用到一个符号“?”,它表示()。
[单选题] *A、任意1个字符(正确答案)B、任意3个字符C、任意8个字符D、任意若干个字符8. 在Windows查找文件或文件夹时,常常在文件或文件夹名中用到一个符号“*”,它表示()。
[单选题] *A、任意1个字符B、任意3个字符C、任意8个字符D、任意若干个字符(正确答案)(“*”代表任意多个字符(包括0个),“?”代表任意一个字符。
计算机程序设计员模考试题与参考答案一、单选题(共100题,每题1分,共100分)1.下列那种方法不能提高程序的运行效率:( )。
A、不要把不同的数据类型混在一起B、寻找复杂性小的算法C、简化逻辑结构D、尽量避免采用多维数组(C语言除外)和复杂的表格正确答案:C2.下列关于详细设计的工具,说法错误的是:( )。
A、详细设计的工具包括语言B、详细设计的工具包括图形C、详细设计的工具包括数字D、详细设计的工具包括表格正确答案:C3.软件管理按时间可划分为生产管理和( )。
A、使用维护管理B、成本管理C、技术管理D、开发进度管理正确答案:A4.实体关系中学生与任课教师之间具有()联系。
A、一对一B、一对多C、多对多文库D、多对一正确答案:C5.按( )来划分,总线可以分为单向和双向两种。
A、用途B、数据线的宽度C、信息的传输方向D、总线所处的层次正确答案:C6.编码风格是指:( )。
A、使用的编程语言的风格B、代码排版风格C、程序员编程的风格D、编写程序的方式以及表达的格局正确答案:D7.UML是一种标准的图形化建模语言,它是( )分析与设计的一种标准表示。
A、面向结构B、面向对象C、面向过程D、面向功能正确答案:B8.( )语言具有的特征包括:对象生成功能、消息传递机制、类和遗传机制。
A、程式化程序设计B、结构化程序设计C、模块化程序设计D、面向对象正确答案:D9.著作权是指作者及其他著作权人对其文学、艺术、科学作品所享有的人身权利和( )的总称。
A、名誉权利B、署名权利C、发行权利D、财产权利正确答案:D10.下列说法错误的是( )。
A、通常,软件生命周期由问题定义、可行性研究和需求分析3个时期组成B、软件定义时期由问题定义、可行性研究和需求分析3个阶段组成C、一个软件从计划开始到废弃为止,要经历一个漫长的时期,通常把软件经历的这个漫长的时期成为软件生命周期。
D、通常,软件生命周期由软件定义、软件开发和软件维护3个时期组成正确答案:A11.所有的用户需求必须与( )一致。
17春学期《windows可视化编程》在线作业的答案17春学期《windows可视化编程》在线作业一、单选题(共40 道试题,共80 分。
)1. 构建Windows窗体以及其所使用空间的所有类的命名空间是下列哪个选项?A. System.DataB. System.IOC. System.TextD. System.Windows.Forms正确答案:D2. 读取图形文件时,应使用()类的对象.A. TextReaderB. XmlTextReaderC. StreamReaderD. BinaryReader正确答案:D3. 在C#程序中,显示一个信息为"test",标题为"Hello"的消息框,正确的语句是()。
A. MessageBox("test","hello");B. MessageBox.Show("test","hello");C. MessageBox("hello","test");D. MessageBox.Show("hello","test");正确答案:B4. 在/doc/b314145636.html,窗口中,()窗口提供了连接到本地或远程计算机上数据库并进行管理的功能.A. 工具箱B. 资源管理C. 解决方案资源管理器D. 服务器资源管理器正确答案:D5. 在C#编制的财务程序中,需要创建一个存储流动资金金额的临时变量,则应使用下列哪条语句?A. decimal theMoney;B. int theMoney;C. string theMoney;D. Dim theMoney as double正确答案:A6. /doc/b314145636.html,中,在()窗口中可以浏览与当前项目相关的菜单字符串表,对话框等信息。
第12章文档与视图MFC提供了将应用程序的数据与显示分开的文档-视图结构,它为应用程序提供了统一的框架,参见图12-1和图12-2。
MFC的文档-视图结构是MVC模式的一种部分实现。
图12-1 SDI应用程序中的对象图12-2 文档-视图结构中各种对象及其创建与关系12.1 MVCMVC是一种软件架构模式,通过分解程序的不同功能,达到降低程序设计的复杂度、利于程序员专业分工、简化程序的维护和扩展的目的。
MVC是1979年挪威计算机科学家Trygve Reenskaug在Xerox(施乐公司)PARC(Palo Alto Research Center,帕洛阿尔托研究中心)工作时,为(历史上第二个面向对象程序设计语言和第一个真正的集成开发环境)SmallTalk提出的。
12.1.1 概念MVC(Model-View-Controller,模型—视图—控制器)是一种软件架构模式,它把软件系统分为如下三个基本部分(参见图12-3):●模型(Model)——数据(库)。
●视图(View)——图形界面(表示)。
控制器(Controller)——程序功能(算法)。
图12-3 MVC模式的关系图MVC模式的目的是实现一种动态的程序设计,简化对程序的后续修改和扩展,并且使程序某一部分的重复利用成为可能。
除此之外,此模式通过对复杂度的简化,使程序结构更加直观。
软件系统通过对自身基本部份分离的同时,也赋予了各个基本部分应有的功能,专业人员可以通过自身的专长进行分组合作:数据库专家利用“模型”进行数据管理和数据库设计、界面设计人员利用“视图”进行图形界面设计、而程序员则利用“控制器”编写程序应有的功能(实现算法等等)。
12.1.2 层次模型(Model,数据模型)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。
“模型”有对数据直接访问的权利,例如对数据库的访问。
“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。
但是模型中数据的变化一般会通过一种刷新机制被公布。
为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。
(比较:观察者模式(软件设计模式))视图(View)视图层能够实现数据有目的的显示(理论上,这不是必需的)。
在视图中一般没有程序上的逻辑。
为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。
控制器(Controller)控制器起到不同层面间的组织作用,用于控制应用程序的流程。
它处理事件并作出响应。
“事件”包括用户的行为和数据模型上的改变。
12.1.3 实现●S mallTalk1980年MVC最早被应用于Xerox PARC的面向对象、动态类型、自反射的编程语言SmallTalk-80环境中,运行在首个具有GUI的原型计算机Alto(男高音)上。
●M acApp1985年Apple将MVC用于其推出的Mac OS系统的面向对象的应用程序框架MacApp 中,这是MVC首次在商用产品中的实际应用。
●M FC1993年2月微软在其随Visual C++ 1.0推出的MFC 2.0中,引入了文档-视图(Document / View)架构,它也是一种对于MVC的早期部分实现。
MFC将程序分成视图(View)和文档(Document)两大类,其中的CDocument对应MVC中的数据模型(Model),CView相当于MVC中的视图+控制(View+Controller),再加上应用程序类CWinApp,合成三大项。
但是MFC基本上是一个失败的MVC作品。
由于MFC对Document/View的定义过于模糊,未将Controller(消息映射)部份取出,因此Controller既可置入View也可置入Document,但不管置入哪一方面,都会与View或Document绑死而缺乏弹性。
●J ava EE——Struts1999年12月Sun推出的Java EE(Java Enterprise Edition,Java企业版,原来叫J2EE)和其他的各种框架不一样,它为模型对象(Model Objects)定义了一个规范。
典型例子是由Craig McClanahan于2000年5月所开发的开源Java EE轻型Web应用框架Apache Struts。
⏹视图(View) ——在JA V A EE应用程序中,视图(View)可能由JSP(Java ServerPage,爪哇服务器网页)承担。
生成视图的代码则可能是Servlet的一部分,特别是在客户端服务端交互的时候。
⏹控制器(Controller) ——JA V A EE应用中,控制器可能是一个Servlet。
⏹模型(Model) ——模型则是由一个实体Bean来实现。
●.NET——Windows Forms2002年2月微软所推出的.NET框架中还包含有WinForms(视窗窗体),这个针对视图(View)和控制器(Controller)的模式已被很好地定义,而模型(Model)则留给开发者去设计。
⏹视图(View)——由Form或者Control类继承来的一个类处理视图的职责。
在WinForm这个例子中视图和控制器被编译在同一个类中,这个和不同。
⏹控制器(Controller)——控制器的职责被分割成三部分。
事件(Event)的产生和传输是操作系统的一部分。
在.Net框架中Form和Control类将不同的事件转发给相应的事件处理器。
而事件的处理则在分离的代码中实现。
⏹模型(Model)——就像一样,WinForm不严格需要一个模型。
开发者可以自行选择创建一个模型类,但是很多人选择放弃这一步,直接把事件处理放在控制器里处理任何计算、数据保存等等。
也就是说用模型来包含商业逻辑和数据访问。
●.NET——2002年2月微软随.NET推出了,针对视图(View)和控制器(Controller)的模式并没有被很好地定义,模型(Model)也留给开发者去设计。
⏹视图(View)——ASPX和ASCX文件被用来处理视图的职责。
在这个设计中视图实际上是从控制器继承而来。
这个和Smalltalk的实施有所不同,在Smalltalk中不同的类都有指针互相指向对方。
⏹控制器(Controller)——控制器的职责被分割成两部分。
事件(Event)的产生和传输是框架的一部分,更明确的说是Page和Control两个类。
而事件的处理则在分离的代码中实现。
⏹模型(Model)—— 不严格需要一个模型。
开发者可以自行选择创建一个模型类,但是很多人选择放弃这一步,直接把事件处理放在控制器里处理任何计算、数据保存等等。
但用模型来包含商业逻辑和数据访问是可实现的。
2009年4月9日微软推出了 MVC 1.0,它在 3.5运行库之上提供了一个新的MVC架构。
此架构为Web应用程序文件夹(folder)结构定义了一个特别模式,并提供了一个控制器基类来处理“动作(actions)”请求。
2010年3月10日微软推出了 MVC 2.0,可用于.NET 3.5 SP1和Visual Studio 2008及其SP1,并将集成进.NET 4.0和Visual Studio 2010中。
12.2 文档-视图体系文档(document)对应于用户的数据(可以是文本、数值、图像、声音、视频等),它可以从磁盘文件中读入,也可写入磁盘文件,用户还可以创建、修改和管理这些数据。
文档对应的MFC类为CDocument。
视图(view)是一种窗口对象,对应于框架窗口的客户区,它负责在屏幕和打印机上显示和输出数据,为用户提供观察、选择、编辑文档数据的交互界面(参见图12-4)。
视图对应的MFC类为CView。
文档-视图结构有两种主要的方式:SDI(Single DocumentInterface,单文档界面)和MDI(Multiple Document Interface,多文档界面)。
从MFC 7.0起新增加了一种MTDI(Multiple Top-level Document Interface,多顶级文档界面),参见图11-5。
SDI 传统MDI 选项卡式MDI MTDI图11-5 不同的文档界面SDI应用程序只有一个框架窗口(类)和一个视图窗口(对应于框架窗口的客户区),且只有一个文档类,每次只能打开一个文档。
这里的文档和视图一般是一一对应的。
例如Windows中的记事本、写字板和画图等软件,是典型的SDI应用程序。
MDI应用程序有一个主框架窗口(类),可有任意多个子框架窗口和对应的视图客户区窗口,也可有多个文档类,可以同时打开多个文档/窗口。
这里,每个视图对应于一个文档,而每个文档则可对应于多个视图,参见图12-6。
例如Word 2000和IE 8,分别是传统和选卡式MDI应用程序。
MTDI类似于MDI,只是MDI中的每个文档视图窗口都是主框架窗口的子窗口(只能位于主框架窗口的客户区内)。
而MTDI的文档视图窗口都是顶层窗口,位于主框架窗口之外。
例如新版Word和老版IE,就是典型的MTDI应用程序。
应用程序的文档-视图结构种类,可以在创建MFC应用程序时,在“MFC应用程序向图12-4 文档与视图图12-6 一个文档可对应多个视图导”对话框的“应用程序类型”页中设置(默认为MDI),在该对话框页中还可以选择是否具有“文档/视图结构支持”(默认是选中的),参见图12-7。
图12-7 MFC应用程序向导中的“文档/视图结构支持”选项12.2.1 文档模板类文档、框架窗口与视图通过文档模板联系在一起,MFC的文档模板类为CDocTemplate。
对SDI与MDI,它有两个对应的派生类CSingleDocTemplate与CMultiDocTemplate,在MFC 功能包中又增加了多文档模板的扩展类CMultiDocTemplateEx,参见图12-8。
图12-8 文档模板类的层次结构它们的构造函数的参数都一样:C[Single|Multi]DocTemplate[Ex] ( // 文档模板构造函数UINT nIDResource, // 文档类型的资源IDCRuntimeClass* pDocClass, // 派生文档类对象的指针CRuntimeClass* pFrameClass, // [派生]框架窗口类对象的指针CRuntimeClass* pViewClass // 派生视图类对象的指针);CWinApp类创建文档模板的操作分两步进行,首先用文档模板类的构造函数创建一个SDI或MDI文档模板的实例,然后调用CWinApp类的成员函数AddDocument将该模板添加到应用程序的模板列表中。