返回首页
当前位置: 主页 > 网络编程 > 其他实例教程 >

实验一 构造应用程序框架

时间:2012-05-12 00:42来源:知行网www.zhixing123.cn 编辑:麦田守望者

实验一 构造应用程序框架

一、实验目的:

1.学习使用类向导创建单文档应用程序,多文档应用程序,基于对话框的应用程序三种不同类型的应用程序框架。

2.学习三种不同类型程序之间的联系及其区别。

二、实验内容:

创建出一个单文档应用程序,能在视图窗口中输出"Hello,Welcome to Visual C++ 6.0!";创建出一个多文档文档应用程序,能在视图窗口中输出"Hello,Welcome to Visual C++ 6.0!";创建出一个基于对话框的应用,能在对话框中输出“Hello,Welcome to Visual C++!”。

三、实验步骤:

1 单文档应用程序

创建过程 :

(1)在Visual C++ 6.0的启动界面中,选择“File|New”,在弹出的“New”对话框中单击“Projects”选项卡。

(2)选择“MFC AppWizard(exe)”,在“Location”编辑框中输入要建立的工程所在的目录 。

(3)在右上方的“Project name”编辑框中输入工程名称Eg3_1,单击OK按钮,弹出MFC AppWizard 向导对话框。

(4)在第一步中选择Single document,建立一个单文档界面应用程序SDI。

(5)取其默认值,直到第六步结束。

(6)添加自己的代码:

扩充Eg3_1View.cpp中的OnDraw成员函数:

void CEg3_1View::OnDraw(CDC* pDC)

{

CEg3_1Doc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

// TODO: add draw code for native data here

pDC->TextOut (60,100,"Hello,Welcome to Visual C++ 6.0!");

}

(7)更改应用程序的标题 :

§ 选择工作区中ResourceViews标签,展开Eg3_1 Resources|String Table,双击String Table,弹出字符串资源表 。

§ 双击IDR_MAINFRAME项,弹出String Properties对话框。

§ 在Caption编辑框中将标题修改为“单文档应用程序\nEg3_1”。

(8)编译、链接并运行,结果如图1.1。 

 

  图1.1 单文档的运行结果

2 多文档应用程序

多文档(MDI)接口应用程序是指一个应用程序可以同时打开多个文件进行处理。

在MDI程序中许多程序的细节是与SDI程序是相同的。在MDI程序中使用了CMultiDocTemplate模板,以便程序能够处理多个文档,同时也将视图和文档类连接到该模板及CChildFrame类,CChildFrame类支持出现在主窗口内部的MDI子窗口。

按照上述创建单文档应用程序的步骤创建一个名为Eg3_2多文档应用程序,不同的是在创建工程的第一步中选择multiple document。

编译、链接并运行后,结果如图1.2:

 

 图1.2 多文档的运行结果

3 基于对话框的应用框程序

基于对话框的应用程序,是以对话框为形式的应用程序,它对于那些涉及文档较少,主要是交互式操作的应用程序来说比较合适。

基于对话框的应用框架和前面介绍的基于文档的应用框架有很大的区别。

创建过程

(1)在AppWizard的第一步,即MFC AppWizard --Step 1中,选中“Dialog based”单选框按钮。

(2)在第四步,AppWizard会显示出它将帮助用户创建的类及属性。在这个基于对话框的应用中只有两个类被创建。一个是应用类CEg3_3App,另一个是对话框类CEg3_3Dlg。

(3)修改对话框资源:

在Text properties对话框中,将Caption框中的“TODO: 在这里设置对话控制。”删除,改成为“Hello,Welcome to Visual C++!”。

(4)编译、链接 、运行,结果如图1.3:

 

 

图1.3 基于对话框的运行结果

 

注意:基于对话框的应用框架和基于文档的应用框架的区别在于实现对话框的第一步是创建一个对话框对象dlg,然后通过调用对话类的成员函数DoModal()来显示对话框。

四、问题讨论

1、比较应用程序向导能够生成的三种应用程序之间的异同。

2、了解基于文档/视图结构的框架程序中各个类的结构及各自的功能。
 

------分隔线----------------------------
标签(Tag):可视化程序设计
------分隔线----------------------------
推荐内容
猜你感兴趣