第4章 创建应用程序框架2.ppt
《第4章 创建应用程序框架2.ppt》由会员分享,可在线阅读,更多相关《第4章 创建应用程序框架2.ppt(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、l 应用程序框架应用程序框架l 应用程序向导应用程序向导l 应用程序向导生成的文件应用程序向导生成的文件l ClassWizard类向导类向导l 程序调试程序调试本章内容本章内容通过本章的学习我们可以真通过本章的学习我们可以真正利用正利用Visual C+Visual C+创建一个创建一个简单的简单的 MFC MFC 应用程序。应用程序。同同一一类类型型应应用用程程序序的的结结构构大大致致相相同同,并并有有很很多多相相同同的的源源代代码码,因因 此此 可可 以以 通通 过过 一一 个个 应应 用用 程程 序序 框框 架架 AFX(Application FrameWorks)编写同一类型应用程
2、序的通用源代码。编写同一类型应用程序的通用源代码。何谓应用程序框架?何谓应用程序框架?4.1 应用程序向导应用程序向导l与与其其它它可可视视化化开开发发工工具具一一样样,Visual C+提提供供了了创创建建应应用用程程序序框架的向导框架的向导AppWizard和相关的开发工具。和相关的开发工具。l在在可可视视化化开开发发环环境境下下,生生成成一一个个应应用用程程序序要要做做的的工工作作主主要要包包括括编编写写源源代代码码、添添加加资资源源和和设设置置编编译译方方式式。向向导导实实质质上上是是一一个个源源代代码码生生成成器器,利利用用应应用用程程序序向向导导可可以以快快速速创创建建各各种种风风
3、格格的的应应用用程程序序框框架架,自自动动生生成成程程序序通通用用的的源源代代码码,这这样样大大大大减减轻轻了了手手工工编写代码的工作量。编写代码的工作量。l即即使使不不熟熟悉悉Visual C+编编程程,也也可可以以利利用用它它的的应应用用程程序序向向导导一一个简单的应用程序。个简单的应用程序。创创建建一一个个应应用用程程序序,首首先先要要创创建建一一个个项项目目。项项目目用用于于管管理理组组成成应应用程序的所有元素,并由它生成应用程序。用程序的所有元素,并由它生成应用程序。Visual C+集集成成开开发发环环境境包包含含了了创创建建各各种种类类型型应应用用程程序序的的向向导导,执行执行F
4、ile菜单中的菜单中的New命令即可看到向导类型。命令即可看到向导类型。Visual C+集成开发环境中主要向导类型:集成开发环境中主要向导类型:4.1.1 Visual C+向导的类型向导的类型lDatebase Project:创建数据库项目创建数据库项目lMFC ActiveX Control Wizard:创建基于创建基于MFC的的ActiveX控件控件lMFC AppWizarddll:创建基于创建基于MFC的动态链接库的动态链接库lMFC AppWizardexe:创建基于创建基于MFC的应用程序(最常用)的应用程序(最常用)lNew Database Wizard:在在SQL服务
5、器上创建一个服务器上创建一个SQL Server数据库数据库lWin32 Application:创建创建Win32应用程序,可不使用应用程序,可不使用MFC,采用采用API方法方法编程编程lWin32 Console Application:创建创建DOS下的下的Win32控制台应用程序,采用控制台应用程序,采用C+或或C语言进行编程语言进行编程lWin32 Dynamic-link Library:创建创建Win32动态链接库,采用动态链接库,采用API方法方法lWin32 Static Library:创建创建Win32静态链接库,采用静态链接库,采用API方法方法4.1.2 MFC A
6、ppWizard的使用步骤的使用步骤引入应用程序向导的目的:引入应用程序向导的目的:区区别别于于DOS程程序序,即即使使一一个个简简单单的的Windows程程序序,它它也也必必须须显显示示一一个个程程序序运运行行窗窗口口,需需要要编编写写复复杂杂的的程程序序代代码码。而而同同一一类类型型应应用用程程序序的的框框架架窗窗口口风风格格是是相相同同的的,如如相相同同的的菜菜单单栏栏、工工具具栏栏、状状态态栏栏和和用用户户区区。并并且且,基基本本菜菜单单命命令令的的功功能能也也是是一一样样的的,如如相相同同的的文文件件操操作作和和编编辑辑命命令令。所所以以,同同一一类类型型应应用用程程序序建建立立框框
7、架架窗窗口口的的基基本本代代码码都都是是一一样样的的,尽尽管管有有些些参参数数不不尽尽相相同同。为为了了避避免免程程序序员员重重复复编编写写这这些些代代码码,一一般般的的可可视视化化软软件件开开发发工工具都提供了创建具都提供了创建Windows应用程序框架的向导。应用程序框架的向导。例例4_1:编写一个单文档应用程序:编写一个单文档应用程序Mysdi,程序运行后在程序视图程序运行后在程序视图窗口显示信息窗口显示信息“这是一个单文档程序!这是一个单文档程序!”。l在在Visual C+中执行中执行File|New命令,出现命令,出现New对话框。对话框。l确认确认New对话框的当前页面为对话框的
8、当前页面为Project,在左栏的项目类型列表框中在左栏的项目类型列表框中选择选择MFC AppWizardexe项,在项,在Project Name框输入要创建项目框输入要创建项目的名称的名称。在在Location栏中输入项目所在的目录,可单击右侧栏中输入项目所在的目录,可单击右侧“”浏览按钮来对默认的目录进行修改。向导将在该目录下存放项目的浏览按钮来对默认的目录进行修改。向导将在该目录下存放项目的所有文件。单击所有文件。单击OK按钮出现按钮出现MFC AppWizard-Step1对话框。对话框。在在MFC AppWizard-Step1对话框中选择应用程序的类型。对话框中选择应用程序的类
9、型。lSingle document:单单文文档档界界面面应应用用程程序序,程程序序运运行行后后出出现现标标准准的的Windows界界面面,它它由由框框架架(包包括括菜菜单单栏栏、工工具具栏栏和和状状态态栏栏)和和用用户户区区组组成成。并并且且程程序序运运行行后后一一次次只只能能打打开开一一个个文文档档,如如Windows自自带带的记事本的记事本Notepad。lMultiple documents:多多文文档档界界面面应应用用程程序序,程程序序运运行行后后出出现现标标准的准的Windows界面,并且可以同时打开多个文档,如界面,并且可以同时打开多个文档,如Word。lDialog based
10、:基基于于对对话话框框的的应应用用程程序序,程程序序运运行行后后首首先先出出现现一一个对话框界面,如计算器个对话框界面,如计算器Calculator。lNone:向向导导创创建建的的应应用用程程序序不不包包括括对对数数据据库库的的操操作作功功能能,但但以以后后可可以手工添加对数据库的操作代码(以手工添加对数据库的操作代码(默认项默认项)。)。lHeader files only:提提供供了了最最简简单单的的数数据据库库支支持持,仅仅在在项项目目的的stdAfx.h文文件件中中使使用用#include指指令令包包含含afxdb.h和和afxdao.h两两个个用用于于定定义义数数据据库库类类的的头
11、头文文件件,但但并并不不生生成成与与数数据据库库相相关关的的类类,用用户户需需要要时可以自己生成。时可以自己生成。lDatabase view without file support:包包含含了了所所有有的的数数据据库库头头文文件件,并并生生成成了了相相关关的的数数据据库库类类和和视视图图类类,但但不不支支持持文文档档的的序序列列化化,向向导导创创建建的的应应用用程程序序的的File主主菜菜单单中中将将不不包包含含有有关关文文件件操操作作的的菜菜单单命命令令项。项。l Database view with file support:包包含含了了所所有有的的数数据据库库头头文文件件,生生成了相
12、关的数据库类和视图类,支持文档的序列化。成了相关的数据库类和视图类,支持文档的序列化。在在MFC AppWizard-Step 2 of 6选择应用程序所支持的数据库方式:选择应用程序所支持的数据库方式:lNone:应用程序不支持任何复合文档(应用程序不支持任何复合文档(默认项默认项)。)。lContainer:应应用用程程序序作作为为复复合合文文档档容容器器,能能容容纳纳所所嵌嵌入入或或链链接接的的复合文档对象。复合文档对象。lMini-server:微微型型复复合合文文档档服服务务器器,应应用用程程序序可可以以创创建建和和管管理理复复合合文文档档对对象象,但但对对于于它它所所创创建建的的复
13、复合合文文档档对对象象,集集成成应应用用程程序序可可以以嵌嵌入入,但但不不能能链链接接。微微型型服服务务器器不不能能作作为为一一个个单单独独的的程程序序运运行行,而而只只能由集成应用程序来启动。能由集成应用程序来启动。lFull-server:完完全全复复合合文文档档服服务务器器,除除了了具具备备上上面面微微型型服服务务器器的的功功能外,应用程序支持链接式对象,并可作为一个单独的程序运行。能外,应用程序支持链接式对象,并可作为一个单独的程序运行。lBoth container and server:应应用用程程序序既既可可作作为为一一个个复复合合文文档档容容器器,又可作为一个可单独运行的复合文
14、档服务器。又可作为一个可单独运行的复合文档服务器。在在MFC AppWizard-Step 3 of 6选择应用程序所支持的选择应用程序所支持的复合复合文档类型:文档类型:lDocking toolbar:应用程序具有标准的工具栏(应用程序具有标准的工具栏(默认项默认项)lInitial status bar:应用程序具有标准的状态栏(应用程序具有标准的状态栏(默认项默认项)lPrinting and print preview:应应用用程程序序支支持持打打印印和和打打印印预预览览功功能能(默认项默认项)lContext-sensitive Help:应用程序具有上下文相关帮助功能应用程序具有
15、上下文相关帮助功能l3D controls:应用程序界面具有三维外观(应用程序界面具有三维外观(默认项默认项)lMAPI:应用程序具有发送电子邮件的功能:应用程序具有发送电子邮件的功能lWindows Sockets:应用程序能使用套接字,支持:应用程序能使用套接字,支持TCP/IP协议协议lNormal:应用程序采用传统风格的工具栏(应用程序采用传统风格的工具栏(默认项默认项)lInternet Explorer ReBars:应用程序采用应用程序采用IE风格的工具栏风格的工具栏lHow many files would you like on your recent file list:在
16、在File主主菜菜单单可列出文档的最多个数可列出文档的最多个数lAdvanced按按钮钮:进进行行更更高高一一级级的的设设置置,如如修修改改文文件件名名或或扩扩展展名名,调调整程序用户界面窗口的样式整程序用户界面窗口的样式在在MFC AppWizard-Step 4 of 6设置应用程序界面特征:设置应用程序界面特征:lMFC Standard:应用程序采用应用程序采用MFC标准风格标准风格(默认项默认项)lWindows Explorer:应用程序采用应用程序采用Windows资源管理器风格资源管理器风格l选择向导是否为源代码生成选择向导是否为源代码生成注释注释l设置设置MFC库与应用程序的
17、库与应用程序的链接方式链接方式:(1)As a shared DLL:采采用用共共享享动动态态链链接接库库的的方方式式(默默认认项项),即即在在程程序序运运行行时时才才调调用用MFC库库。采采用用此此方方式式可可减减少少应应用用程程序序的的代代码码长度。长度。(2)As a statically linked library:采采用用静静态态链链接接库库的的方方式式,即即在在编编译译时时把把MFC库库与与应应用用程程序序相相链链接接。采采用用此此方方式式能能提提高高运运行行速速度度,且不用考虑程序最终运行环境中是否安装了且不用考虑程序最终运行环境中是否安装了MFC库。库。在在MFC AppWi
18、zard-Step 5 of 6设置项目的风格设置项目的风格:在在MFC AppWizard-Step 6 of 6,列出了向导将创建的类,用户可,列出了向导将创建的类,用户可以修改一些类默认的类名和对应的头文件名、实现文件名。对某些类以修改一些类默认的类名和对应的头文件名、实现文件名。对某些类还可以选择不同的还可以选择不同的基类基类。在在New Project Information对话框,根据用户在前面各步所做的对话框,根据用户在前面各步所做的选择列出将要创建的应用程序的有关信息,如应用程序的类型、创建选择列出将要创建的应用程序的有关信息,如应用程序的类型、创建的类和文件名、应用程序的特征
19、以及项目所在的目录。若要修改这些的类和文件名、应用程序的特征以及项目所在的目录。若要修改这些内容,可单击内容,可单击Cancel按钮返回到前一个对话框。单击按钮返回到前一个对话框。单击OK按钮,按钮,MFC AppWizardexe向导将开始创建应用程序框架。向导将开始创建应用程序框架。当应用程序框架创建成功后,当应用程序框架创建成功后,Developer Studio将装入应用程序项将装入应用程序项目,并在项目工作区窗口打开这个项目。值得说明的是,若想在同一目,并在项目工作区窗口打开这个项目。值得说明的是,若想在同一个目录下重新创建一个同名的项目,必须首先将原来的项目删除或移个目录下重新创建
20、一个同名的项目,必须首先将原来的项目删除或移走。走。利用利用MFC AppWizardexe向导创建应用程序向导创建应用程序Mysdi的框架后,用的框架后,用户无需添加任何代码,就可以对程序进行编译、链接,生成一个应用户无需添加任何代码,就可以对程序进行编译、链接,生成一个应用程序。但一般情况下,用户应根据程序具体功能需要,利用程序。但一般情况下,用户应根据程序具体功能需要,利用Developer Studio中的集成工具向应用程序框架添加具体的代码。中的集成工具向应用程序框架添加具体的代码。void CMysdiView:OnDraw(CDC*pDC)CMysdiDoc*pDoc=GetDo
21、cument();ASSERT_VALID(pDoc);/TODO:add draw code for native data herepDC-TextOut(100,100,“这是一个单文档程序!这是一个单文档程序!”);/在坐标在坐标(100,100)处显示文本串处显示文本串 执执行行Build(F7)命命令令编编译译链链接接程程序序,程程序序运运行行后后将将在在程程序序视视图区域显示文本串。图区域显示文本串。P140P140表表4-14-1在视图类的成员函数在视图类的成员函数OnDraw()中实现屏幕输出中实现屏幕输出例例4_2:编编写写一一个个基基于于对对话话框框的的应应用用程程序序M
22、yDialog,程程序序运运行行后后显示一个对话框。显示一个对话框。编程说明与实现:编程说明与实现:1.执执 行行 File|New命命 令令,在在 New对对 话话 框框 中中 选选 择择 MFC AppWizardexe项项,输输入入程程序序名名MyDialog。单单击击OK按按钮钮,出出现现MFC AppWizard-Step 1。2.在在MFC AppWizard-Step 1中中选选择择Dialog Based选选项项,单单击击Next按钮,出现按钮,出现MFC AppWizard-Step 2 of 4。3.在在MFC AppWizard-Step 2 of 4中设置应用程序界面特
23、征。中设置应用程序界面特征。4.创创建建对对话话框框应应用用程程序序后后续续的的步步骤骤与与创创建建单单文文档档或或多多文文档档应用程序的应用程序的Step 5和和Step 6 相同。相同。利利用用Visual C+编编写写Windows应应用用程程序序可可以以采采取取几几种种不不同同的途径:的途径:l 利用利用 Win32 应用程序接口应用程序接口 API(Application Programming Interface)提供的函数,用提供的函数,用C或或C+语言编写程序。语言编写程序。l 由于由于 MFC 通过类对通过类对API的绝大部分功能进行了封装,可以的绝大部分功能进行了封装,可以
24、利用利用 MFC,用,用 C+语言编写程序。语言编写程序。l利用利用 MFC 和和 MFC AppWizardexe,首先利用首先利用 MFC AppWizardexe 应用程序向导生成基本的应用程序框架,然应用程序向导生成基本的应用程序框架,然后按照后按照 MFC 机制和原理向框架添加具体的应用代码。机制和原理向框架添加具体的应用代码。4.1.3 MFC应用程序的开发流程应用程序的开发流程 l根根据据应应用用程程序序特特性性在在MFC AppWizardexe应应用用程程序序向向导导各各步骤对话框中进行选择,创建一个应用程序的框架。步骤对话框中进行选择,创建一个应用程序的框架。l利利用用资资
25、源源编编辑辑器器为为程程序序编编辑辑或或添添加加资资源源,如如编编辑辑菜菜单单、添添加对话框等。加对话框等。l利利用用ClassWizard类类向向导导或或手手工工添添加加类类、成成员员变变量量和和成成员员函函数的声明。数的声明。l根据需要编写具体的函数代码。根据需要编写具体的函数代码。l编编译译、链链接接程程序序。如如果果程程序序有有语语法法错错误误,需需要要修修改改源源程程序序。直到没有编译、链接错误,才能得到可执行程序。直到没有编译、链接错误,才能得到可执行程序。l测测试试应应用用程程序序各各项项功功能能,如如果果程程序序没没有有实实现现程程序序设设计计所所要要求求的的功功能能,启启动动
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 创建应用程序框架2 创建 应用程序 框架
限制150内