Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)qq
published in(发表于) 2014/7/9 22:36:06
C++利用AppWizard 为FDraw 生成应用程序框架[二]

C/C++利用AppWizard 为FDraw 生成应用程序框架[二]

C/C++利用AppWizard 为FDraw 生成应用程序框架[二]

AppWizard 提供了多种应用程序框架的生成功能。通过一系列的交互对话框,根据需要定制多种选项,并生成一组可编译、运行的源代码文件,简称“应用程序框架”。由于应用程序框架已经生成了许多基础的、必需的功能,这就使得后续的基于此框架的应用开发变得规范、方便。

运行效果

由 AppWizard 生成的FDraw 应用程序框架的运行结果如图4.6 所示。其文档窗口是空白的,原因是还没有添加任何应用程序的特定代码。



图4.6 由AppWizard 生成的Fdraw 应用程序框架的运行效果此应用程序框架已经实现的主要功能如下。

(1) 菜单。AppWizard 产生的菜单具有基本的Windows 操作系统功能。

① 文件(File)菜单中有:新建(New)、打开(Open)、关闭(Close)、保存(Save)、另存为(Save As)、打印(Print)、打印预览(Print Preview)、打印设置(Print Setup)、发送(Send)、最近文件和退出(Exit)命令,以及对应的快捷键。

② 编辑(Edit)菜单中有:撤销(Undo)、剪切(Cut)、复制(Copy)和粘贴(Paste)命令,以及对应的快捷键。

③ 查看(View)菜单中有:工具栏(Toolbar)和状态栏(Stats Bar)命令。

④ 窗口(Window)菜单中有:新建窗口(New Window)、层叠(Cascade)、平铺(Title)和排列图标(Arrange Icons)命令。

⑤ 帮助(Help)菜单中有:Help Topics 和About Fdraw 命令。

(2) 工具栏。其中有新建、打开中、保存、剪切、复制、粘贴、打印、关于帮助和帮助按钮。它们都具有相应的提示,即将鼠标指向相应的工具图标时,显示相应的功能提示。

(3) MAPI 支持被完全实现。文件菜单中的发送(Send)命令不需要用户编写额外的代码就可以工作 (这条命令以及MAPI 常规的支持,只有在用户拥有电子邮件系统时才可以使用)。

(4) Context-Sensitive Help 的实现。在帮助菜单中的Help Topics 命令是对Context-Sensitive Help 的支持,在这里添加相应内容,即可实现。

2.FDraw 应用程序框架的生成步骤

使用 AppWizard 生成FDraw 应用程序框架的具体步骤如下。

(1) 在File 菜单中选择New 命令或按Ctrl+N 组合键,弹出New 对话框。

(2) 单击Projects 标签,在Projects 项目类型列表中选中MFC AppWizard (exe)选项。

(3) 在Project name 文本框中输入项目名称FDraw,使Visual C++将其赋予新项目以及该项目所在的项目工作区。

(4) 在Location 文本框中输入项目FDraw 存放的文件夹路径,如“D:OOP 与GUI 的Visual C++实现第4 章基于GUI 的Visual C++实现FDraw4.2 基于MFC 的应用程序框架生成(FDraw Step 0)”,如果不存在,Developer Studio 会自动生成该项目文件夹,也可以采用默认路径,或者单击Browse 按钮…,选择相应路径中的文件夹,如图4.7 所示。

在 Platforms 列表中选中Win32 复选框。如果用户的Microsoft Developer Studio 安装包括其他语言包,则它们由复选框代表而作为潜在的平台。

(5) 单击OK 按钮,AppWiZard 会在指定路经下创建文件夹FDraw。工作区文件和项目开发环境的参数文件都基于此名称,分别是FDraw.dsw 和FDraw.Opt,并弹出如图4.7 所示的New 对话框。



图4.7 New 对话框

(6) 在MFC AppWizard – Step 1 对话框中,采用默认的Multiple documents(多文档),单击Next 按钮,显示MFC AppWizard-Step1 对话框,如图4.8 所示。

Single document:单文档;

Dialog based:基于对话框;

Document/View architecture support:对文档-视图结构的支持,默认为支持,如果不选择此项,则程序中磁盘文件的打开、保存以及文档和视图的相互作用等功能需要用户来实现。

(7) 在MFC AppWizard-Step1 对话框中,采用默认设置None,单击Next 按钮,弹出MFC AppWizard-Step 2 of 6 对话框,如图4.9 所示。



图4.8 MFC AppWizard-Step1 对话框



图4.9 MFC AppWizard-Step 2 of 6 对话框

(8) 在MFC AppWiZard-Step 2 of 6 对话框中,采用默认None,单击Next 按钮,弹出MFC AppWizard-Step 3of 6 对话框,如图4.10 所示。



图4.10 MFC AppWizard-Step 3 of 6 对话框

(9) 在MFC AppWiZard-Step 3 of 6 对话框中,采用默认设置,单击Next 按钮,弹出MFC AppWizard-Step 4 of 6 对话框,如图4.11 所示。



图4.11 MFC AppWizard-Step 4 of 6 对话框

(10) 在MFC AppWiZard-Step 4 of 6 对话框中,选中MAPI(消息API)复选框。MAPI 支持只在用户有电子邮件系统时有效。同时,为了使FDraw 具有Help 功能,要将Context-Sensitive Help 复选框选中。其他为默认选项,AppWizard 生成支持下列功能的代码:

① 一个可固定的工具栏;

② 一个状态栏;

③ 打印和打印预览;

④ 3D 控件。

(11) 单击Advanced 按钮,弹出Advanced Options 对话框,如图4.12 所示,其中的Document Template Strings 为默认的标签。.



图4.12 Advanced Options 对话框

Doc type name 文本框中输入的字符串是新文档的默认名称。第一个新文档名称为FDraw1,第二个为FDraw2,依此类推。

File extension 文本框中输入不带逗点“.”的默认文件扩展名,如scb。输入默认文件扩展名后,应用程序向导自动将文件扩展名说明输入到Filter name 文本框中。AppWizard 为用户保存FDraw 时,将自动为文件名加上扩展名.scb。如果用户不指定扩展名,那么当保存文件时,就必须确定自己的文件扩展名。这就是Open 或Save As 对话框的File of Type 或Save as Type 下拉列表框中将显示的字符串。如果需要,可以对其进行编辑。

(12) 单击Close 按钮,关闭Advanced Options 对话框。

(13) 在MFC AppWiZard-Step 4 of 6 对话框中,单击Next 按钮,弹出MFC AppWiZard-Step 5 of 6 对话框,如图4.13 所示。



图4.13 MFC AppWiZard-Step 5 of 6 对话框

(14) 在MFC AppWiZard-Step 5 of 6 中,单击Next 按钮,弹出MFC AppWiZard-Step 6 of 6对话框,如图4.14 所示,包括视图类、执行文件、主框架、子框架、文档和头文件。



图4.14 MFC AppWizard-Step 6 of 6 对话框

(15) 在MFC AppWiZard-Step 6 of 6 对话框中,单击Finish 按钮,弹出New Project lnformation 对话框,如图4.15 所示。它总结了AppWizard 为用户生成项目时用户所确立的设置和功能。用户可检查AppWizard 自动提供的应用程序类型、类以及各项功能。



图4.15 New Project Information 对话框

(16) 单击New Project lnformation 对话框中的OK 按钮,AppWizard 就会生成所有必需的文件并打开该项目,如图4.16 所示。



图4.16 项目FDraw 的集成环境

(17) 单击工具栏中的“!”按钮,运行FDraw 项目,编译链接成功后,运行后效果如图 4.17 所示。



图 4.17 工具栏快捷菜单

知识点:

(1) CObject 是MFC 的根类,绝大多数MFC 类是由其派生的,包括CcmdTarget 类。Cobject类包括动态类信息、动态创建、对象序列化、对程序调试的支持等。所有从CObject 类派生的类都将具备或者可以具备Cobject 类所拥有的特性。CcmdTarget 类通过封装一些属性和方法,提供了消息处理的架构。在MFC 中,任何可以处理消息的类都从CcmdTarget 类派生。

(2) MFC 封装了Win32 API、OLE API、ODBC API 等底层函数的功能,并提供更高一层的接口,从而简化了Windows 编程。同时,MFC 支持对底层API 的直接调用。附录D 给出了MFC 的层次结构图。




If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759