Windows人机交互程序设计-16.ppt
《Windows人机交互程序设计-16.ppt》由会员分享,可在线阅读,更多相关《Windows人机交互程序设计-16.ppt(93页珍藏版)》请在冰豆网上搜索。
l应用程序框架应用程序框架l应用程序向导应用程序向导l应用程序向导生成的文件应用程序向导生成的文件lClassWizard类向导类向导l程序调试程序调试通过本章的学习我们可以真正利用VisualC+创建一个简单的MFC应用程序。
本章内容本章内容同一类型应用程序的结构大致相同,并有很多相同的源代码,因此可以通过一个应用程序框架AFX(ApplicationFrameWorks)编写同一类型应用程序的通用源代码。
何谓应用程序框架?
何谓应用程序框架?
l与其它可视化开发工具一样,VisualC+提供了创建应用程序框架的向导AppWizard和相关的开发工具。
l在可视化开发环境下,生成一个应用程序要做的工作主要包括编写源代码、添加资源和设置编译方式。
向导实质上是一个源代码生成器,利用应应用用程程序序向向导导可以快速创建各种风格的应应用用程程序序框框架架,自动生成程序通用的源代码,这样大大减轻了手工编写代码的工作量。
l即使不非常熟悉VisualC+编程,也可以利用它的应用程序向导应用程序向导一个简单的应用程序。
4.1应用程序向导应用程序向导创建一个应用程序,首先要创建一个项项目目。
项目用于管理组成应用程序的所有元素,并由它生成应用程序。
VisualC+集成开发环境包含了创建各种类型应用程序的向导,执行File菜单中的New命令即可看到向导类型。
VisualC+集成开发环境中主要向导类型:
4.1.1VisualC+中的向导类型中的向导类型主要向导类型主要向导类型lDatebaseProject:
创建数据库项目lMFCActiveXControlWizard:
创建基于MFC的ActiveX控件lMFCAppWizarddll:
创建基于MFC的动态链接库lMFCAppWizardexe:
创建基于MFC的应用程序(最常用)lNewDatabaseWizard:
在SQL服务器上创建一个SQLServer数据库lWin32Application:
创建Win32应用程序,可不使用MFC,采用SDK方法编程lWin32ConsoleApplication:
创建DOS下的Win32控制台应用程序,采用C+或C语言进行编程lWin32Dynamic-linkLibrary:
创建Win32动态链接库,采用SDK方法lWin32StaticLibrary:
创建Win32静态链接库,采用SDK方法4.1.2使用使用MFCAppWizardexe引入应用程序向导的目的:
引入应用程序向导的目的:
区别于DOS程序,即使一个简单的Windows程序,它也必须显示一个程序运行窗口,需要编写复杂的程序代码。
而同一类型应用程序的框架窗口风格是相同的,如相同的菜单栏、工具栏、状态栏和用户区。
并且,基本菜单命令的功能也是一样的,如相同的文件操作和编辑命令。
所以,同一类型应用程序建立框架窗口的基本代码都是一样的,尽管有些参数不尽相同。
为了避免程序员重复编写这些代码,一般的可视化软件开发工具都提供了创建Windows应用程序框架的向导。
MFCAppWizardexe的功能:
的功能:
lMFCAppWizardexe是创建基于MFC的Windows应用程序的向导。
当利用MFCAppWizardexe创建一个项目时,它能够自动生成一个MFC应用程序的框架。
l即使不添加任何代码,当执行编译、链接命令后,VisualC+IDE将生成一个Windows界面风格的应用程序。
lMFC应应用用程程序序框框架架将那些每个应用程序都共同需要使用的代码封装起来,如完成默认的程序初始化功能、建立应用程序界面和处理基本的Windows消息,使程序员不必做这些重复的工作,把精力放在编写实质性的代码上。
lMFCAppWizardexe向导提供了一系列选项,程序员通过选择不同的选项,可以创建不同类型和风格的MFC应用程序,并可定制不同的程序界面窗口。
例如,单文档、多文档、基于对话框的程序,是否支持数据库操作、是否可以使用ActiveX控件以及是否具有联机帮助等。
例例编写一个单文档应用程序Mysdi,程序运行后在程序视图窗口显示信息“这是一个单文档程序!
”。
l在VisualC+中执行File|New命令,出现New对话框。
l确认New对话框的当前页面为Project,在左栏的项目类型列表框中选择MFCAppWizardexe项,在ProjectName框输入要创建项目的名称。
在location栏中输入项目所在的目录,可单击右侧“”浏览按钮来对默认的目录进行修改。
向导将在该目录下存放项目的所有文件。
单击OK按钮出现MFCAppWizard-Step1对话框。
l在MFCAppWizard-Step1对话框中选择应用程序的类型。
lSingledocument:
单文档界面应用程序,程序运行后出现标准的Windows界面,它由框架(包括菜单栏、工具栏和状态栏)和用户区组成。
并且程序运行后一次只能打开一个文档,如Windows自带的记事本Notepad。
lMultipledocuments:
多文档界面应用程序,程序运行后出现标准的Windows界面,并且可以同时打开多个文档,如Word。
lDialogbased:
基于对话框的应用程序,程序运行后首先出现一个对话框界面,如计算器Calculator。
MFCAppWizardexe创建应用程序的类型:
lNone:
向导创建的应用程序不包括对数据库的操作功能,但以后可以手工添加对数据库的操作代码(默认项)。
lHeaderfilesonly:
提供了最简单的数据库支持,仅在项目的stdAfx.h文件中使用#include指令包含afxdb.h和afxdao.h两个用于定义数据库类的头文件,但并不生成与数据库相关的类,用户需要时可以自己生成。
lDatabaseviewwithoutfilesupport:
包含了所有的数据库头文件,并生成了相关的数据库类和视图类,但不支持文档的序列化,向导创建的应用程序的File主菜单中将不包含有关文件操作的菜单命令项。
lDatabaseviewwithfilesupport:
包含了所有的数据库头文件,生成了相关的数据库类和视图类,支持文档的序列化。
在MFCAppWizard-Step2of6选择应用程序所支持的数据库方式,包括以下选项:
lNone:
应用程序不支持任何复合文档(默认项)。
lContainer:
应用程序作为复合文档容器,能容纳所嵌入或链接的复合文档对象。
lMini-server:
微型复合文档服务器,应用程序可以创建和管理复合文档对象,但对于它所创建的复合文档对象,集成应用程序可以嵌入,但不能链接。
微型服务器不能作为一个单独的程序运行,而只能由集成应用程序来启动。
lFull-server:
完全复合文档服务器,除了具备上面微型服务器的功能外,应用程序支持链接式对象,并可作为一个单独的程序运行。
lBothcontainerandserver:
应用程序既可作为一个复合文档容器,又可作为一个可单独运行的复合文档服务器。
在MFCAppWizard-Step3of6选择应用程序所支持的数据库方式复合文档类型,包括以下选项:
lDockingtoolbar:
应用程序具有标准的工具栏(默认项)lInitialstatusbar:
应用程序具有标准的状态栏(默认项)lPrintingandprintpreview:
应用程序支持打印和打印预览功能(默认项)lContext-sensitiveHelp:
应用程序具有上下文相关帮助功能l3Dcontrols:
应用程序界面具有三维外观(默认项)lNormal:
应用程序采用传统风格的工具栏(默认项)lInternetExplorerReBars:
应用程序采用IE风格的工具栏lHowmanyfileswouldyoulikeonyourrecentfilelist:
在File主菜单可列出文档的最多个数。
lAdvanced按钮:
进行更高一级的设置,如修改文件名或扩展名,调整程序用户界面窗口的样式(边框厚度和最小化、最大化、关闭按钮)。
在MFCAppWizard-Step4of6设置应用程序界面特征(工具栏和状态栏),包括以下选项:
lMFCStandard:
应用程序采用MFC标准风格(默认项)lWindowsExplorer:
应用程序采用Windows资源管理器风格l选择向导是否为源代码生成注释l设置MFC库与应用程序的链接方式:
(1)AsasharedDLL:
采用共享动态链接库的方式(默认项),即在程序运行时才调用MFC库。
采用此方式可减少应用程序的代码长度。
(2)Asastaticallylinkedlibrary:
采用静态链接库的方式,即在编译时把MFC库与应用程序相链接。
采用此方式能提高运行速度,且不用考虑程序最终运行环境中是否安装了MFC库。
在MFCAppWizard-Step5of6设置项目的风格,包括以下选项:
在NewProjectInformation对话框,根据用户在前面各步所做的选择列出将要创建的应用程序的有关信息,如应用程序的类型、创建的类和文件名、应用程序的特征以及项目所在的目录。
若要修改这些内容,可单击Cancel按钮返回到前一个对话框。
单击OK按钮,MFCAppWizardexe向导将开始创建应用程序框架。
在MFCAppWizard-Step6of6,列出了向导将创建的类,用户可以修改一些类默认的类名和对应的头文件名、实现文件名。
对某些类还可以选择不同的基类。
利用MFCAppWizardexe向导创建应用程序Mysdi的框架后,用户无需添加任何代码,就可以对程序进行编译、链接,生成一个应用程序。
但一般情况下,用户应根据程序具体功能需要,利用DeveloperStudio中的集成工具向应用程序框架添加具体的代码。
当应用程序框架创建成功后,DeveloperStudio将装入应用程序项目,并在项目工作区窗口打开这个项目。
值得说明的是,若想在同一个目录下重新创建一个同名的项目,必须首先将原来的项目删除或移走。
在视图类的成员函数OnDraw()中实现屏幕输出voidCMysdiView:
OnDraw(CDC*pDC)CMysdiDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);/TODO:
adddrawcodefornativedataherepDC-TextOut(100,100,“这这是是一一个个单单文文档档程程序序!
”);/在坐标在坐标(100,100)处显示文本串处显示文本串执行Build(F7)命令编译链接程序,程序运行后将在程序视图区域显示文本串。
例例2编写一个基于对话框的应用程序MyDialog,程序运行后显示一个对话框。
编程说明与实现编程说明与实现1.执行File|New命令,在New对话框中选择MFCAppWizardexe项,输入程序名MyDialog。
单击OK按钮,出现MFCAppWizard-Step1。
2.在MFCAppWizard-Step1中选择DialogBased选项,单击Next按钮,出现MFCAppWizard-Step2of4。
3.在MFCAppWizard-Step2of4中设置应用程序界面特征。
4.创建对话框应用程序后续的步骤与创建单文档或多文档应用程序的Step5和Step6相同。
利用VisualC+编写Windows应用程序可以采取几种不同的途径:
l利用Win32应用程序接口API(ApplicationProgrammingInterface)提供的函数,用C或C+语言编写程序。
l由于MFC通过类对API的绝大部分功能进行了封装,可以利用MFC,用C+语言编写程序。
l利用MFC和MFC