文档库 最新最全的文档下载
当前位置:文档库 › 实验1Visio绘图初步

实验1Visio绘图初步

实验1Visio绘图初步
实验1Visio绘图初步

1 Visio绘图初步

(实验估计时间:90分钟)

1.1 背景知识

Visio系列产品大约从1990年开始研发。Visio软件秉承了“模块化”和“可重用性”的先进设计思想,通过提供许多应用领域的基本图形模块,允许用户通过拖放图件来组合出自己所需要的图形,使用十分简单,大大简化了用户的工作,产品受到广泛的欢迎。1995年,这家研发Visio软件的公司干脆更名为Visio,并于同年完成了股票上市。

1999年,Microsoft以股票交易方式并购了Visio公司,不久之后,便推出了新版本的Visio软件。至此,和大家熟悉的Word、Excel、PowerPoint、FrontPage、Access等软件一样,Visio也成为Microsoft Office家族的一员,得到了Microsoft强大的技术支持。

Visio并不是一个真正意义上的CASE工具,而只能说是一个绘图工具软件。但是,在目前已有的各类绘图软件中,Visio是建立流程图、组织图、日程表、行销图、布置图等各种图形图表最快速、最简便的工具之一。Visio带有一个绘图模板集,包含了用于各种商业和工程应用的符号。其中的软件和系统开发模板提供了流程图、数据流图、实体-联系(E-R) 图、UML图以及其他许多图形符号。模板提供了一个用于存储图表元素的定义和描述信息的有限资料库,并且这些模板还在不断地补充和发展中,其使用范围也将越来越广泛。由于其所具有的强大的专业绘图功能,系统分析和设计人员可以用Visio来创建CASE应用中所需要的任何系统模型。

1.1.1 Visio的功能与特色

Visio软件的核心功能包含了智慧图元技术、智慧型绘图和开发式架构,它的最大特色就是“拖拽式绘图”,这也是Visio与其他绘图软件的最大区别之处。用户只需用鼠标把相应的图件拖动到绘图页中,就能生成相应的图形,可以对图形进行各种编辑操作。通过对大量图件的组合,就能绘制出各种图形。

说Visio功能强大,是由于它不但能绘制各种各样的专业图形,还可以绘制丰富的生活图形,无论是办公用户还是工程技术人员,都可以用它来绘制自己的图形,包括程序流程图、工艺流程图、企业机构图等等。Visio提供的模板包括:

Web图表。

地图。

电气工程。

工艺工程。

机械工程。

建筑设计图。

框图。

灵感触发。

流程图。

软件。

数据库。

图表和图形。

网络。

项目日程。

业务进程。

组织结构图。

图1-1显示了其中的“软件”模板和“网络”模板。用户也可以根据自己的需要建立个性化的新模板。因此,Visio的应用范围几乎是没有限制的。

Visio与Microsoft的Office系列软件等有着很好的整合性,同时,用户也可以轻松地利用局域网和Internet来分享他们的图表,沟通想法等。

1.1.

2. Visio的安装

Visio的安装过程十分简单,并且不同版本的安装过程大同小异,其间需要输入作为产品密钥的产品序列号。安装过程中,Visio安装文件被复制到硬盘上,安装完成时删除这些文件,可以节省约300M的磁盘空间。但是,安装程序会建议保留它们,以有助于协助Visio 的维护和更新。

(a) “软件”模板

(b) “网络”模板

图1-1 Visio的模板

1.1.3. Visio的文件类型

Visio文件共有4种类型,即绘图文件、模具文件、模板文件和工作环境文件。

1) 绘图文件(.vsd) :用于存储绘制的各种图形。—个绘图文件中可以有多个绘图页,它是Visio中最常用的文件。

2) 模具文件(.vss) :用来存放绘图过程中生成各种图形的“母体”,即形状(图件) 。Visio自带了大量对应于不同绘图场合的模具文件,给绘图带来了很大的方便。用户还可以根据自己的需要,生成自己的模具文件。

3) 模板文件(.vst) :同时存放了绘图文件和模具文件,并定义了相应的工作环境。Visio 自带了许多模板文件。用户可以利用Visio自带的或者自己生成的模具文件,对操作环境加以改造,进而生成自己的模板文件。

4) 工作环境文件(.vsw) :用户根据自己的需要将绘图文件与模具文件结合起来,定义最适合个人的工作环境,生成工作环境文件。该文件存储了绘图窗口、各组件的位置和排列方式等。在下次打开时,可以直接进入预设的工作环境。

此外,Visio还支持其他多种格式的文件,可以在Visio的打开或保存操作中使用这些文件类型。

1.2 实验目的

1) 了解开发Visio解决方案的基本概念。

2) 学习应用Visio工具绘制UML模型图、网络图、机架图和网站图等图形,熟练Visio 绘图操作。

1. 3工具/准备工作

在开始本实验之前,请回顾教科书的相关内容。

需要准备一台安装有Microsoft Visio Professional 2003软件的计算机。

1. 4实验内容与步骤

本实验中,我们以Microsoft Visio Professional 2003中文版为例,来学习Visio

的工作界面和基本操作。

1.4.1 Visio的工作环境

Visio的工作环境包括工作窗口、菜单、工具栏、定位工具以及帮助等内

容。

(1)工作窗口

对应所打开Visio文件的不同,工作窗口也会有所差异,但其基本样式类似。

如图1-2是新建的Visio数据流程图文件的工作窗口。

图1-2 Visio的工作窗口

.菜单:通过单击菜单命令的操作,可以实现Visio的各项功能。

.工具栏:可以快速执行各项功能和操作,是菜单的快捷方式。

.绘图页面:相当于一张图纸,可以在它上面生成并编辑图形。一个绘图文

件可以产生好几个绘图页面,可以通过“页面标签”来切换。

.网格:在绘图时对图形的位置进行校正,但打印时一般并不显示。

.标尺:用于对图形进行更为精确的定位。

.绘图窗口:相当于一个工作台,在上面放置绘图页面等其他组件。

.形状(也称图件):是Visio中最核心的部分。通过鼠标的拖拽而在绘图页

面中产生对应的图形副本。将鼠标指针在图件上停留片刻,可以看到对该图件的

注释,即对该图件功能和使用范围的说明。

.模具:存放各种图件的仓库。

(2)视窗的调整

主要依靠菜单中的“视图”、“窗口”命令和“视图”工具栏来实现。视窗调

整中常见的操作包括:

.缩放操作:利用该操作可以调整页面的显示比例,以便更有效地进行

绘图操作,且该功能改变的只是页面在屏幕上的显示效果,对实际大小并无

影响。

提示:“视图”菜单中有几个命令比较特殊:“全屏显示”仅显示页面中的内容:“整页”

使页面恰好显示为一页;“页宽”使页面在页宽方向上最大显示。

.显示方式调整:当有多个文件同时打开时,可以用“并排”、“水平”和“层叠”三种排列方式来显示视窗。并排排列可在“窗口”菜单中单击“平铺”命令;水平排列可在按下Ctrl键的同时,在“窗口”菜单中单击“平铺”命令;层叠排

列可在“窗口”菜单中单击“层叠”命令。

(3)任务窗格

这项功能提供了一些常用的命令选项a Visio的任务窗格功能主要有开始工作、帮助、剪贴画、信息检索、搜索结果、新建绘图、模板帮助、共享工作区、文档

更新和审阅等。在“视图”菜单中单击“任务窗格”命令,可以调出任务窗格并

显示在屏幕右侧。

(4)小视窗

Visio有4个小视窗,堪称其“显微镜”,它们分别是:扫视和缩放窗口、自定义属性窗口、大小和位置窗口和绘图资源管理器窗口。可以通过“视图”菜单中

的相应命令来打开它们,还可以使小视窗始终处于绘图窗口的最上层。利用这4

个小视窗,可以更加方便快捷地观看并修改图形的各种信息。打开这4个小视窗

后的效果如图1-3所示。

四个小视窗的功能分别为:

1)扫视和缩放窗口:该视窗将显示出完整的绘图页面略图。移动或改变红色

矩形框的位置和大小可以局部放大绘图页面中对应位置的图形,并实现改变结果

的同步显示。

2)自定义属性窗口:在绘图页面选中图形,则在该窗口中可以看到所选图形的自定义属性,可以在此对自定义的属性值进行修改。

3)大小和位置窗口:利用该视窗可以显示和修改所选择图形的位置坐标和

尺寸。

4)绘图资源管理器窗口:该视窗列出了当前打开绘图文件中的所有资源数据,例如页面、图形、图层、背景页、图件等。

练习:

1)操作并熟悉Visio的工作窗口。

2)分别新建几个绘图文件,调整并观察它们的显示方式。

3)打开并观察三个任务窗格。

4)打开并观察小视窗,体会它们中各个栏目的含义。

请记录:操作能够顺利完成吗?如果不能,请说明为什么。与你用过的其他

绘图工具相比较,感觉如何?

图1-3 Visio的四个小视窗

1.4.

2.菜单

Visio的菜单栏提供了各种绘图命令,包括文件、编辑、视图、插入、格式、工具、形状、窗口和帮助等9个菜单项。通过菜单操作,可以完成几乎所有的图形编辑功能。

用户还可以在系统默认菜单的基础上,通过“工具”菜单中的“自定义”命令来定制个性化菜单,即根据个人的使用习惯,在原有菜单命令的基础上,添加新的菜单命令或是添加新的菜单。

练习:

1)观察菜单栏中的各个命令。

2)尝试在菜单栏中添加一个新的菜单项,并在该菜单项下添加几个常用的菜单命令(如打开、保存命令等)。

请记录:操作能够顺利完成吗?感觉如何?如果不能,请说明为什么。

1.4.3.工具栏

Visio提供了12个工具栏,利用它们可以完成对绝大多数对象的操作,而且使用效果同菜单命令是一样的,还可以使用“自定义”选项来定制包含特殊要求的工具栏。

练习:

1)打开并观察所有的工具栏,尽量找出其命令按钮同菜单命令的对应

关系。

2)试着添加一个新的工具栏,其中包含“插入图片”和“插入符号”两个命令按钮。

请记录:操作能够顺利完成吗?感觉如何?如果不能,请说明为什么。

1.4.4.定位工具

作为一种绘图软件,提供必要的工具以进行精确定位是非常重要的。Visio提供了多种定位工具,主要有标尺、网格、参考线和连接点等四种。可以在“视图”菜单下找到这些工具。

l)标尺:分为垂直标尺和水平标尺两种,分别位于绘图窗口的左侧和上方。标尺的单位可以根据需要,在“文件”菜单中单击“页面设置”命令,在对话框“页属性”选项卡的“度量单位”中进行修改。

默认情况下,水平标尺和垂直标尺的坐标零点都位于绘图页面的左下角,而绘图窗口左上角处水平标尺和垂直标尺相交的位置称为“辅助点”,在按下Ctd

键的同时,用鼠标拖动“辅助点”,可以改变标尺坐标零点的位置;而用鼠标双

击“辅助点”,可以将坐标原点恢复成默认值(及绘图页面的左下角处),如图

1-4所示。

2)网格:在绘制图形时网格是必不可少的,它的作用是用来对齐对象,使图

形的整体效果整齐美观。网格只是起到辅助绘图的作用,在实际打印时一般并不出现。

网格的格式设置如网格线的粗细、间距等,可以通过在“工具”菜单中单击“标尺和网格”命令来进行。

3)参考线(定位导线):这同样也用于帮助对齐各种图形。与网格不同的是,参考线可以在绘图窗口中随意产生和移动,而且在移动参考线时,所有和它对齐的图形也将随之移动。

将鼠标指针置于水平或垂直标尺上,当形状变为双箭头时,按鼠标左键并拖动,参考线就会自动产生并随鼠标移动。参考线平常为蓝色虚线,而在被选中时变为绿色粗实线。

图1-4标尺的坐标原点和辅助点

若是在“辅助点”处开始进行拖动操作的话,最终将会产生一个小型的十字参考线—辅助点。选中参考线,再单击Delete键即可将其删除。

4)连接点:这是Visio的最大特色之一。Visio的图形一般都有若干连接点,

利用这些连接点,不但可以准确定位,而且通过连接点的“粘和”操作,还能将多个图形连为一体,相当方便快捷。

在“视图”菜单中单击“连接点”命令,可以显示图形上的连接点,所有的连接点都标记为蓝色叉号。在Visio中,连接点可以根据实际需要随意增加、移动和删除。

练习:使用标尺、网格、定位导线和连接点、体会它们的定位功能。

请记录:操作能够顺利完成吗?感觉如何?如果不能,请说明为什么。

1.4.5.文件操作

文件操作通常包括新建、打开、保存和保护等。Visio中的文件操作同其他软件相比有一定差别。

1)新建文件。在每次进入Visio程序时,首先看到的都是“新建和打开文件”窗口,如图1-5所示。

图1-5“新建和打开文件”窗口

该窗口分为两部分:选择绘图类型和新建绘图。在“选择绘图类型”部分按类别列出了Visio提供的适用于各种场合的绘图模板。选择新建绘图文件要使用的模板,双击它便可以生成一个新的基于该模板的绘图文件。若不想使用任何现成模板,那么直接单击右侧任务窗格中“打开”栏下的“新建绘图…”就可以了。

2)打开文件。进入Visio时,单击右侧任务窗格中“打开”栏的“打开…”项,可以在“打开”对话框中选择已经存在的Visio文件、打开文件的类型等,选定后,单击“打开”按钮即可。

如果已经处在Visio的绘图工作状态时,可在“文件”菜单中单击“打开”命令,或者单击工具栏上“打开”按钮。

3)保存文件。在“文件”菜单中单击“保存”命令,或者直接单击工具栏上的“保存文件”按钮,都可以保存文件。如果是第一次保存文件,会弹出“另存为”对话框。

设定完毕后单击“保存”按钮,将弹出“属性”对话框,可对“常规”、“摘要”和“内容”三个选项卡进行相应设置。最后,单击“确定”按钮即完成保存操作。

4)保护文件。在Visio中,可以对文件设置保护,可以设置哪些对象需要保护,哪些对象不需要保护。

具体操作方法是:在“视图”菜单中单击“绘图资源管理器窗口”命令,打

开“绘图资源管理器窗口”小视窗,右键单击当前打开的文件,在快捷菜单中单

击“保护文档”命令。此时,将弹出“保护文档”对话框如图1-6所示。

图1-6设定需要保护的部分

在此可以选择设定想要保护的部分。设定完毕,单击“确定”按钮使之生效。

1.4.5..绘图页面操作

Visio为绘图页面提供了强大的编辑功能,利用它们可以完成绘图页面的打印

格式页面设置、绘图页的增加和删除以及背景页的生成等各种操作。

1)页面属性设定。在绘图文件的打开状态下,可以对绘图页面的属性进行设定。在“文件”菜单中单击“页面设置”命令,将弹出“页面设置”对话框,可

在其中进行“打印设置”、“页面尺寸”、“绘图缩放比例”、“页属性”和“布局和

排列”等选项操作。

2)增加新绘图页。当建立一个新的绘图文件时,Visio已经自动生成了一个新

的绘图页,将其命名为“页一1”并显示在“页面标签”中。每个绘图文件都可以包含多个绘图页,在每个绘图页中都可以绘制各自的图形。

为增加新的绘图页,可在绘图窗口下方的“页面标签”上单击鼠标右键,在

快捷菜单中单击“插入页”命令,此时,将弹出“页面设置”对话框,可在其中

填入新绘图页的各项属性,如类型、名称等,然后单击“确定”按钮即可。当然,也可以使用系统默认值而直接单击“确定”按钮。

3)删除绘图页。在“编辑”菜单中单击“删除页”命令,或者使用右键快捷

菜单,可选择删除某个绘图页。

4)重命名绘图页。在要重命名的绘图页的“页面标签”上单击鼠标右键,在

弹出的右键菜单中单击“重命名页”命令,则对绘图页名称进行修改。

5)背景页操作。在绘图文件中加入背景页,可以使图形显得更加美观和专业。生成背景页有多种方法,最简单的方法是利用Visio提供的“背景”模具。

当我们打开Visio程序时,就是使用某个模具来建立新文件,则“背景”模具

一般是自动打开的;如果“背景”模具没有自动打开,则可以在“文件”菜单中

单击“形状”、“其他Vlsio方案”、“背景”命令,或者单击“常用”工具栏上的“形状”按钮进行选择,如图1-7所示。

用鼠标选中“背景”模具中任意一个图件,并拖放到

绘图页面上,此时将弹出一对话框询问是否要为所选择的

绘图页增加一个背景页,单击“是”按钮,系统自动生成

一个背景页,内容便是刚才选取并拖动的图形。

用户也可以用自己绘制的页面作为背景。方法如下:

步骤1:新建一个页面,其“页属性”中类型设为“前

景”,背景设为“无”。

图1-7“背景”模具

步骤2:在该新建页上绘制自己的图形或写上文字。

步骤3:编辑完毕后,在“文件”菜单中单击“页面

设置”命令,在弹出对话框的“页属性”选项卡下将类型

设置为“背景”。单击“确定”按钮,则该页被设置为背景页。

步骤4:此时再切换到“页一1”页面,在“文件”菜单中单击“页面设

置”命令,打开“页面设置”对话框,在“页属性”选项卡的背景选项列表

中,可以看到在前面设置的几个背景选项。从中选择一个作为“页一1”的背

景页面。

类似地,可以进行删除背景页的操作。但需要注意的是,在删除背景页之前,需要先将其从所有以它为背景的绘图页面中移走,否则会出现警告对话框,且不能完成背景页的删除操作。

6)页眉与页脚的设定。与Office系列的其他软件一样,Visio的页眉和页脚

也是给绘图页面编上页码,加入作者、日期和文件名称等各种附加信息,使得打印出来的图形更美观、更专业和方便读者阅读。页眉与页脚的设置方法是;在“视图”菜单中单击“页眉和页脚”命令,在弹出的“页眉和页脚”对话框的对应栏中填入内容即可。

7)其他设定。Visio还允许对它的其他一些功能进行设定。这些功能设定主要集中在“选项”对话框中。在“工具”菜单中单击“选项”命令,可在对话框的不同选项卡中对不同类型的功能进行相应的设定。

1.4.6.制作第一个Visio图形

在对Visio有了初步了解的基础上,接下来,我们来制作第一个Visio图形。将要制作的图形是一个关于演示C程序运行步骤的流程图。

步骤1:启动Visio,进入“新建和打开文件”窗口。

步骤2:在“选择绘图类型”栏的“类别”中单击选择“流程图”、“基本流

程图”模板,Visio自动启动相关模板,并生成新的空白绘图页。

可以看到,窗口左侧是绘图模具,里面放置了大量绘图所需的图件,见图1-8.

将鼠标指向图件图标时,将自动显示该图件的用

途。

步骤3:在模具中选中一个图件,将其拖放

到绘图页面上的合适位置。

步骤4:重复上述拖动步骤,将进程、判定、

顺序数据和终结符等图件拖入页面中,并排列,

如图1-9所示。

步骤5:单击“常用”工具栏上的“连接线

工具”按钮(注意观察鼠标指针形状的变化),

将鼠标移动到第一个要连接图形的连接点附近,

当连上图形时,在连接点处会出现红色方框,表

示连接线和连接点已经连上了。

步骤6:按下鼠标,移动到下一个图形的连

接点上,待出现红色边框时松开鼠标,此时完成

了两图形间的连接。

步骤7:重复上述步骤,完成其他图形之间

的连接,如图1-10所示。

步骤8:所有图形连接完毕后,单击“常用”

工具栏上的“指向工具”按钮,退出连接状态,

图1-8绘制“基本流程图”的图件

恢复到鼠标选取状态。

步骤9:接着进行线型设定。用鼠标单击要

改变线型的连接线将其选中(若要同时选择多条连接线,需在按下Shift键的同时进行选取),然后单击“格式”工具栏上的“线型”按钮选择线型。

步骤10:在第一个图形上双击鼠标,进入文字编辑模式,输入文字“开始”。如果对文字的字体和大小不满意,可以先将文字选中,然后在“格式”工具栏的“字体”和“字号”选项中进行设置。

步骤11:重复上述步骤,在图形中输入其他文字。连接线上的文字也可以通过双击连接线进入文字编辑模式来输入。

至此,流程图便基本制作完成,为了显得更加美观和专业,还可以给它加上背景页以及页眉和页脚等。

步骤12:最后,记得执行存盘操作,保存文件。

请记录:操作能够顺利完成吗?如果不能,请说明为什么。

图1-9拖动图件构成流程图的基本框架

图1-10完成流程图的连接

请简单描绘此时你对Visio工具的使用感受,与你使用过的其他绘图工具相比,有什么方便之处:

1.4.7. Visio应用实践

通过上述操作,我们可以对制作一份Visio绘图文件需要经过的6个主要步骤总结如下:

1)选择合适的模板建立绘图文件。

2)从模具中向绘图页拖入图件形成图形。

3)用连接线工具将相互间有关系的图形连接起来。

4)为图形和连接线加上适当的文字说明。

5)对绘图文件进行美化处理。

6)保存绘图文件。

下面,请根据己经取得的操作经验,制作一份程序流程图,如图1-11所示。

图1-11一个结构化程序的流程图

请注意体会整个过程中对文件和绘图页面的各种操作,并注意总结绘制过程中经

历了哪些主要步骤。

请记录:

1)流程图绘制操作能够顺利完成吗?如果不能,请说明为什么。

2) Visio绘制流程图实验完成,请交实验指导老师确认:

或者:请按以下文件名格式保存该制作文件,交给你的实验指导老师:<学号><姓名>程序流程图.vsd

1. 5实验总结

mfc简单绘图程序

M F C 简 单 的 绘 图 程 序 ——王帅

目录 摘要 (2) 关键字 (2) 1 引言 (2) 设计目的 ............................................................................................................ 错误!未定义书签。 2 功能说明 (2) 2.1菜单栏....................................................................................................... 错误!未定义书签。 2.1.1图形 (3) 2.1.2画笔 (4) 2.1.3画硬币 (4) 2.2工具栏 (5) 2.3状态栏 (5) 3 功能的实现 (5) 3.1 视图设计 (5) 3.2 编辑资源 (6) 3.3 编程思路及各个函数的实现 (7) (1)思路 (7) (2)代码的实现 (7)

1.为基本形状创建一个基类 (8) 2.基本形状类的创建 (8) 2.1矩形类的创建及定义 (8) 2.2圆形类的创建及定义 (10) 2.3正五边形类的创建及定义 (11) 2.4正三角形类的创建及定义 (14) 2.5椭圆类的创建及定义 (16) 2.6正四边形类的创建及的定义 (17) 2.7正六边形类的创建及定义 (18) 2.8直线类的创建及定义 (19) 3.各基本形状类在CMyDraw2_0类中的调用和绘图的实现 (20) 3.1矩形类的调用与与绘图的实现 (20) 3.2圆形类的调用 (24) 3.3正三角形类的调用 (25) 3.4基本类型调用的剩余代码 (26) 4.画笔的使用、颜色及大小的调整 (29) 5.画硬币 (35) 6.工具栏中的自定义控件 (38) 7.状态栏中的显示 (39) 4程序功能的测试 (41) 5最后总结 (42)

简单的绘图程序实验报告

面向对象程序设计实训(基于MFC程序设计) 题目: 简单的绘图程序 院系专业: 姓名: 学号: 同组其他学生(学号):

简单绘图程序说明 1、功能分析 目前这个软件的主要功能有如下: 1、画直线:通过OnLine()函数实现。 2、画矩形:通过OnRectangle()函数实现。 3、画圆角矩形:通过OnRoundrect()函数实现。 4、画椭圆:通过OnEllipse()函数实现。 5、铅笔工具:可以画任意线条。通过直接在OnMouseMove(UINT nFlags, CPoint point)函数里面添加代码实现。 6、右键弹出菜单:可以在客户中点击鼠标右键,快速选择常用菜单。通过 OnContextMenu函数实现。 7、状态栏显示鼠标移动的坐标:在程序的右下角显示,通过调用setWidnowText 和GetParent()实现。 8、画图颜色选择:可以画任何颜色的线条,通过OnColor()函数实现。 9、线条类型及线宽的设置:可以将画出的线条设置成实线、虚线、点线、点划 线,双点划线,还可以设置线条的粗细,,通过实例这一功能立刻显示所选择线条的粗细及线型。通过新建CLineSettingDlg类,其中OnSelchangeLineStyle()函数实现线型的改变,OnChangeEditLineWidth()函数实现线宽的改变。再在CDrawView类中调用OnLineSetting()函数实现画笔的对话框, CLineSettingDlg类中的OnPaint()函数是实现示例功能的。 10、窗口的重绘时不擦除原来的内容:新建CShape类用来保存线条的颜色,线 宽,填充色等属性,在窗口大小发生变化时有OnDraw(CDC* pDC)函数进行重绘工作,重绘中调用了各个绘图函数的Draw(CDC *pDC)函数。 11、所绘图形的保存于读取,通过Serialize(CArchive &ar)函数进行序列化操作, 将所绘图形的信息通过文件的形式保存起来。

C++实验报告(MFC简单画图程序)

VC++程序设计实验报告 一、实验目的 掌握MFC编程 二、实验内容 用MFC向导创建单文档应用程序,一个简单的画图程序。 ?使用C++语言实现 ?使用VC++6.0集成开发环境开发 ?使用MFC应用程序开发框架 三、实验步骤 ?基本功能描述 1. 打开exe文件,在绘图下拉菜单中可分别设置绘制的图形形状,如直线、 曲线、矩形及椭圆,线宽选项,有1-6可供选择,线型选项有实线、虚线、点线和点段线供设置,还可以设置线色以及填充色,通过弹出的颜色对话框选择需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔,画刷来绘制选择的图形。 2. 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决 定图形的大小,当鼠标弹起,此图形则绘制完毕。 ?设计思路 1. 对需要用到的变量进行初始化。 2. 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。选择不同的线宽,线色与填充色,即可改变画笔或画刷的属性。 3. 鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,刷新,得到绘制图形。 4. 选择图形或其它属性,可进行下一次绘制。 ?软件设计 A 设计步骤 1.创建单文档 创建一个MFC AppWizard[exe]工程,命名为“Draw”,如图1所示,并创建单文档,如图2所示。创建成功后,系统自动生成相应的类,如图3所示。

图1 创建工程 图2 创建单文档

mfc简单绘图程序报告

简单绘图程序 1 需求说明 1.1 问题描述 设计一个简单的绘图应用程序,可以绘制图形或自由绘制线段,可以更改颜色、画笔粗细、保存文件。 1.2功能说明 1.图形绘制功能:直线、椭圆、矩形。 在菜单栏中选择需要的图形(也可以通过工具栏中选择)用鼠标便能在视图中绘出相应的图形。 2.可以绘制自由线段 3.对图形的操作:能通过菜单栏弹出对话框选择线宽、自定义颜色,也可以擦除绘制的线段。 4.可以保存绘图文件,保存后打开可以继续绘制。 2.1.3 数据说明 在程序运行以后,当用户单击某个菜单项时,应该把用户的选择保存起来,以便随后的绘图操作使用。在CDzyView类中添加一个私有变量xz;用来保存用户的选择(直线、矩形、椭圆、自由绘图)在绘制时都可有两点来确定其图形。当鼠标左击时得到一个点,当鼠标停止移动时得到另外一个点。为视图类CDzyView分别捕获鼠标左键按下和弹起这两个消息。当鼠标左键按下时,需要将鼠标当前按下点保存至sx、sy,在鼠标移动停止后,将当前坐标保存至ex,ey.

其他主要数据说明: int fd 判断是否为自由绘图模式int w 线宽 int R RGB中的R int G RGB中的G int B RGB中的B CGraph类中 int m_nType:保存后重绘时用户的选择int qdx; 重绘起点x int qdy; 重绘起点y int zdx; 重绘终点x int zdy; 重绘终点y CLine类中 int cx; 重绘线宽 int sx; 重绘起点x int sy; 重绘起点y int zx; 重绘终点x int zy; 重绘终点y int w; 重绘线宽 自定义颜色对话框关联变量: IDC_EDIT_RED int m_Red IDC_EDIT_GREEN int m_Green IDC_EDIT_BLUE int m_Blue IDC_SCROLL_RED CScrollBar m_Sred IDC_SLIDER_GREEN CSliderCtrl m_Sgreen IDC_SPIN_BLUE CSpinButtonCtrl m_Sblue 2 分析、设计与实现 2.1 主要功能设计与实现

c面向对象程序设计MFC简单计算器实验报告

计算机与信息工程学院 《程序设计基础》课程设计报告 题目名称:60.编写一个能实现简单功能的计算器学生姓名:刘沛东 学生学号:2011508154 专业班级:电子信息工程(1)班 指导教师:高攀

1 课程设计的题目 编写一个能实现简单功能的计算器 2 题目要求 1. 有一个计算器图形。 2. 能实现加、减、乘、除及乘方的运算。 3. 当输入题目时,屏幕上要在指定位置上显示出相应的题目内容,且相应的数字键要改变颜色 例如:输入数字1 时,在计算器图形上的1键变为红色。 4. 屏幕、图形颜色、形状自定 3 总体设计 3.1 总体框架 图1 系统框架

3.2 系统功能说明 在VC++6.0中绘制计算器界面,各控件的设置 对0~9控件设定相应的ID和其他属性: 图2 “1”控件设置 对“+、-、*、\”控件设定相应的ID和其他属性: 图2 “+”控件设置 对其它控件设定相应的ID和其他属性: 图3 其它控件设置

主要使用到Layout菜单中的Align功能对各个按钮进行对其,使界面更加整洁。拖出的控件有上面的一个Edit控件用于显示数字,Button控件用于处理鼠标的消息。 4 程序详细设计 4.1系统主调模块 图5 程序流程图

4.2各模块详细设计 4.2.1 建立的变量,控件的命名,对应的消息处理函数对应表 double poz; //保存小数点的位置,初始化为1,表示poz-1个小数点。 double m_Dis; //Edit控件上需要显示的数字 BOOL point_flag; //小数点表示位,判定是否是小数,是小数为1,不是小数为0。 double numfirst; //保存计算过程中的前一个数字, double numsecond;//保存计算过程中的第二个数字 char op;//记录当前的计算符号,可以为’+’,’-’,’*’,’/’,’=’,’c’,’n’ 变量初始化: poz=1; m_Dis = 0.0; numfirst=0; numsecond=0; op=0;

MFC实现简单画图形程序(学习相关)

《MFC编程及应用》课程设计报告题目:简单画图形程序 学号:姓名: 指导老师: 时间: 评语:

程序设计步骤: 一、建立基于对话框的应用程序框架; 二、CMy0910200155Dlg类中关键新增变量的作用: CPtrArray pta; //用于保存已绘图形的相关信息。 CMemoryNode *pmN; //指向CMemoryNode类的指针,程序运行过 程中动态保存对象信息。 CMemoryNode *pmn; //指向CMemoryNode类的指针,从文件中读 取信息时动态创建类的对象。 COLORREF m_CurrentBrushColor; //用于存放当前画刷的颜色。 COLORREF m_CurrentPenColor; //用于存放当前画笔的颜色。 int num; //用于存放从"Index.txt"文件中读取的数字。 int flag=0; //用于标识:当为1时,表示按下了”画图”按钮;当为2时, 表示按下了”撤消”按钮;当为3时,表示按下了”加载历史” 按钮,则从文件中读取信息。 int mark; //用于标识:当为0时,表示刚画过矩形;当为1时,表示 刚画过圆角矩形;当为2时,表示刚画过椭圆。 int index; //用于存放pta数组的容量。 int flag1=0; //用于标识,和flag搭配,用来处理多种情况下的窗口重绘 问题。 int ButtonState=0; //用于标识,是类CShow和类CMy0910200155Dlg 的一个接口,通过其值在1和0之间转换,来处理弹出式对 话框的初次绘制和移动时的重绘问题。

简易画图板设计报告

设计报告:Graphic简易画 图板 -----韩伟谢程焜肖越周峰 电科二班

1设计目的 设计一个单文档类型的MFC AppWizard (exe)工程,工程取名为:Graphic。此程序将实现简单的绘图功能,包括点、直线、矩形、椭圆、扇形和连续线的绘制。并且能实现绘图的控制,包括线宽、线型和颜色的设置,图形的保存和打开以及笔刷的使用。 2 总体设计 设计图如图6

图6 3详细设计 首先,新建一个单文档类型的MFC AppWizard (exe)工程,工程取名为:Graphic。为此程序添加一个子菜单,菜单名称为“绘图”,并为其添加六个菜单项,分别用来控制不同图形的绘制。当用户选择其中的一个菜单项后,程序将按照当前的选择进行相应图形的绘制。添加的六个菜单项的ID及名称如表1所示。然后分别为这六个菜单项添加命令响应,本程序让视类(CGraphicView)对这些菜单命令进行响应,这六个响应函数的名称分别如表1所示。

在程序运行以后,当用户单击某个菜单项时,应该把用户的选择保存起来,以便随后的绘图操作使用。因此在CGraphicView类中添加一个私有变量m_nDrawType;用来保存用户的选择,该变量的定义如下所述: private: UINT m_nDrawType; 接着,在视类的构造函数中将此变量初始化为0,程序代码如下: CGraphicView::CGraphicView() { // TODO: add construction code here m_nDrawType=0; } 利用switch/case语句,来分别完成相应图形的绘制。当用户选择【绘图】菜单下的不同子菜单项时,将变量m_nDrawType设置为不同的值。程序代码如下:void CGraphicView::OnDot() { // TODO: Add your command handler code here m_nDrawType=1; } void CGraphicView::OnLine() { // TODO: Add your command handler code here m_nDrawType=2; } void CGraphicView::OnRectangle() { // TODO: Add your command handler code here m_nDrawType=3; } void CGraphicView::OnEllipse() { // TODO: Add your command handler code here m_nDrawType=4;

基于MFC的简单画图程序实验

简单画图程序 【实验目的】 本实验目的是通过构建基于MFC的windows画图程序,使学生: (1) 理解MFC应用程序的运行机制 (2) 掌握使用MFC构建Windows应用程序的基本结构及编程的基本方法 (3) 理解和掌握MFC应用程序消息处理机制及应用 (4) 掌握类向导(ClassWizard)的使用 【实验要求】 (1) 必须做好实验原理的预习。 (2) 需要对提供的程序代码进行分析,并明确实验时还应在何处添加哪些语句。 【实验环境】 Microsoft Windows XP Microsoft Visual C++ 6.0 1 基本功能描述 1) 在单文档菜单中,在菜单行中可插入一个菜单项,命名为绘图,在下拉菜单中可分别设置绘制的图形形状,如直线、矩形及椭圆,线宽选项,有1-5可供选择,还可以设置线色以及填充色,通过弹出的颜色对话框选择需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔,画刷来绘制选择的图形。 2) 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决定图形的大小,当鼠标弹起,此图形则绘制完毕。 3) 增添工具栏,设置绘制的图形形状,线色以及填充色,可更方便地选择相应的功能。 2 设计思路 1) 对需要用到的变量进行初始化。 2) 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。选择不同

3) 鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,刷新,得到绘制图形。 4) 选择图形或其它属性,可进行下一次绘制。

c++实验报告mfc简单画图程序).doc

V C++程序设计实验报告 一、实验目的 掌握MFC编程 二、实验内容 用MFC向导创建单文档应用程序,一个简单的画图程序。 ?使用C++语言实现 ?使用VC++6.0集成开发环境开发 ?使用MFC应用程序开发框架 三、实验步骤 ?基本功能描述 1. 打开exe文件,在绘图下拉菜单中可分别设置绘制的图形形状,如直线、曲线、矩形及椭圆,线宽选项,有1-6可供选择,线型选项有实线、虚线、点线和点段线供设置,还可以设置线色以及填充色,通过弹出的颜色对话框选择需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔,画刷来绘制选择的图形。 2. 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决定图形的大小,当鼠标弹起,此图形 则绘制完毕。 ?设计思路 1. 对需要用到的变量进行初始化。 2. 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。选择不同的线宽,线色与填充色,即可改变画笔或画刷的属性。 3. 鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,刷新,得到绘制图形。 4. 选择图形或其它属性,可进行下一次绘制。 ?软件设计 A 设计步骤 1.创建单文档 创建一个MFC AppWizard[exe]工程,命名为“Draw”,如图1所示,并创建单文档,如图2所示。创建成功后,系统自动生成相应的类,如图3所示。

图1 创建工程 图2 创建单文档

画图程序设计报告(MFC)

Windows程序设计课程设计报告 班级:计本08-1班 姓名:X X 学号:XXXXXXXXX 指导老师: 2010-11-29

目录 1 引言 (3) 1.1 课题背景 (3) 1.2 课程设计目的 (3) 2 功能说明 (3) 3 系统的实现 (4) 3.1 视图设计 (4) 3.2 编辑资源 (4) 3.3 编程思路及各个函数的实现 (5) 4程序功能的测试 (7) 4.1测试的研究与选择 (7) 4.2 测试环境 (7) 5.3 实例测试结果 (7) 5学习的总结 (9) 6参考文献 (10)

摘要:本课程设计实现的是画椭圆、矩形、直线和随手画功能等。这个画图小程序实现了简单的画图功能,具有简洁大方的图文外观。它的设计按软件工程的方法进行,系统具有良好的界面、必要的交互信息和简易的菜单进行操作。即时准确地获得需要的画图的工具,适合休闲娱乐和简单的画画,对人们的生活有一定的帮助。在课程设计中,系统开发平台为WindowsXP,程序设计设计语言采用Visual C++,在程序设计中,采用了结构化与面向对象两种解决问题的方法。 关键词:程序设计;画图;MFC;画图函数Ellipse()Restangle() 1 引言 1.1 课题背景 本课程设计主要在生活中的娱乐,可以在本程序上进行简单的绘图娱乐。 画图是日常生活中有效的工具,能实现简单的画图。本程序是在VC6.0中使用AppWizard创建基于对话框的应用程序。 1.2 课程设计目的 画图的实现,通过C++语句实现。在视图中实现画线功能,更好的了解MFC、C++等面向对象语言的设计和实现,运用自己所学的一些知识来实现其运用到现实的实践中,从而做到学而有用。 2 功能说明 本程序可以实现的功能如下: 1.运行程序后单击“编辑”菜单,选择“画矩形”后,用鼠标就可以在视图中画出一个矩形。 2.选择“画椭圆”,用鼠标就可以在视图中画出一个椭圆。 3.选择“画直线”,用鼠标就可以在视图中画出一条直线。 4.选择“随手画”,用鼠标就可以在试图中随手画画。 5.选择“TOP”就可以让画图窗口一直保持在其他窗口前面。 6.窗口右下角显示系统的当前时间。 7.将项目的默认图标换成自己设计的图标。

MFC画笔程序实验报告

功能说明 1、在画图之前,点菜单【画笔】,设置画笔之后才能绘图 图1、画笔设置 2、左侧工具条依次对应直线、自由画线、实体矩形、实体圆形、实体椭圆、选中区域、擦除功能 图2、图形绘制及编辑 3、选中区域后删除,点击菜单【编辑\删除选定区域】,即可完成删除功能 4、颜色设置,点击菜单【颜色】,弹出颜色对话框,选中颜色

图3、颜色设置 5、背景设置,点击菜单【背景设置】,弹出对话框,选择“是”加载默认位图 资源 图4、背景设置 6、点击保存按钮,生成图片保存到工程文件的文件夹中 问题分析 建立MFC单文档工程文件:Draw 一、画图程序支持画直线、自由连线(随鼠标移动连线)、实体圆形、实体矩形、实体椭圆。 在主窗口中添加工具条,工具条上有直线、自由连线、实体圆形、实体矩形、实体椭圆的的图标,命名为IDR_DRAWFRAME,在CmainFrame的OnCreat函数中将工具条加载上去,函数名为:LoadToolBar 二、支持区域选中(通过鼠标拖拽方框选中),并删除选中区域内所画的形状。 鼠标拖拽方框选中:可以设计绘制为背景为透明色的矩形 删除选中区域即将选中矩形上的图像去掉,变为系统白色区域,即:设计矩形填充为白色 三、支持各种笔形画图时的前景色和背景色

前景色:在菜单中添加颜色菜单,单击颜色菜单,弹出颜色选择框,选择颜色对画笔的颜色进行设置。 背景色:在菜单栏中添加背景设置按钮,选择背景设置,则默认设置图画位图背景为选定的文件 四、支持图擦功能,选中图擦时,随着图擦的移动,根据图擦的大小,将图擦经过的区域中的形状相关部分清除。 在工具条上添加擦出按钮,随着鼠标的移动,鼠标经过的区域图形消失,采用InvalidateRect函数、 五、支持打印、打印预览功能,并保持图片所见即所得。 在视图窗口绘制图形是在逻辑坐标系中展示的,而打印设备对应的是物理坐标系。为了实习所见即所得,需要继续逻辑坐标系到物理坐标系的转换。 六、支持将所画的内容保存为文件,格式为BMP格式。 在菜单【文件】中有“保存按钮”,点击此按钮,将所绘图形保存为.bmp文件。MFC没有提供文件的保存函数,需要自己设计算法,以完成.bmp文件的保存。首先当前显示的屏幕位图拷贝到BITMAP中,然后将BITMAP保存到内存中。 方案设计 一、画图程序支持画直线、自由连线(随鼠标移动连线)、实体圆形、实体矩形、实体椭圆。 实现步骤: (1)在主窗口中添加工具条,工具条上有直线、自由连线、实体圆形、实体矩形、实体椭圆的的图标,命名为IDR_DRAWFRAME,在CmainFrame 的OnCreat函数中将工具条加载上去,函数名为:LoadToolBar (2)直线图标ID号为:ID_SLINE;自由连线图标ID号为:ID_CLINE; 实体圆形ID号为:ID_ROUND 实体椭圆图标ID号为:ID_ELLIPSE 实体矩形ID号为:ID_RECTANGL (3)在CDrawView类中添加m_nDrawType变量控制画图类型,添加m-ptStart变量,保存鼠标起始点。为以上ID号添加COMMAND函数, 分别为:OnSline() 、OnCline() 、OnRound()、OnRectangle() 、OnEllipse()。 函数中控制m_nDrawType的值,以控制图形类型 (4)在CDrawView类中添加成员函数OnLButtonDown、OnLButtonUp和OnMouseMove,OnLButtonUp中完成直线、实体圆形、实体矩形、实 体椭圆的绘制;OnMouseMove中完成自由连线的绘制。 (5)为保证视图窗口刷新时,图形能够再现,添加类CGraph,此类中包含变量nFlags(控制OnMouseMove函数)、m_nDrawType(绘图类型)

MFC实验报告

实验报告 实验日期: 2013 年 05 月 18 日 一、实验目的 1、熟悉Visual C++的基本操作。 2、基本了解基于对话框的windows应用程序的编写过程。 3、对于Windows Socket编程建立初步概念。 二、实验要求 1、应用Visual C++中MFC CSocket类,实现网络数据传输。 2、仿照本实验步骤,制作实用的局域网一对一聊天程序。 三、实验原理

设置加入连接的数目,通过更改IP地址和端口号,成为不同的客户端,与服务器端连接,实现用户间的聊天功能。 1.程序整体框架:主程序监听一端口,等待客户接入;同时构造一个线程类,准备接管会话。当一个Socket会话产生后,将这个会话交给线程处理,然后主程序继续监听。 2.客户端(Client) 客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个端口。 3.服务器端(Server) 服务器端,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。 4.用户图形界面 用户图形界面方便程序与用户的交互,多个用户参加,完成会话功能,具体的设计要方便用户的使用,直观清晰,简洁明了,友好美观。 四、实验内容 一个最简单的点对点聊天程序 客户机/服务器模式是socket点对点网络程序典型的模式,以下这个实验就是实现一个简单的点对点通信的聊天程序。它用到的方法也是面向连接TCP连接的套接字MFC典型方式。其工作过程是:服务器首先启动,创建套接字后等待客户的连接;客户启动以后,创建套接字,然后和服务器建立连接;连接建立后,客户机和服务器可以通过建立的套接字连接进行信息通信。

MFC02_Visual Studio C++ MFC简单绘图程序

Visual studio C++ MFC 简单绘图程序-绘制国际象棋棋盘 功能:由Button将绘制的棋盘显示于Picture Control中 一、建立一个MFC功程序: 1.启动Visual Studio C++; 2.新建一个MFC对话框项目:New|Project|MFCAplication; https://www.wendangku.net/doc/571410816.html,中输入mfc_pic,然后点|OK; 4.在Welcome to the MFC Application窗口:点next; 5.在Application Type窗口:点dialoge base;然后点Finish;出现如图所示的窗口; 6.删除窗口中的TODO…文本对象; 二、向窗口添加一个Picture Control和一个Button共二个对象: 1.修改Button的Caption属性为“绘制棋盘”,ID属性为IDC_BUTTON_DRAR; 2.修改Picture Control的ID属性为IDC_PIC,建立关联变量名为picD; 3.双击Button,添加如下代码: voidCmfcpicDlg::OnBnClickedButton1() { CRect r; intw,h,dxy,i,j; CWnd *pic = GetDlgItem(IDC_PIC); //取Picture的长宽信息 GetDlgItem(IDC_PIC)->GetWindowRect(&r); w=r.Width(); h=r.Height(); dxy=(wGetDC(); pdc->Rectangle(r); CBrushmyBrush; pdc->Rectangle(0,0,8*dxy,8*dxy); //绘制外框线 myBrush.CreateSolidBrush(RGB(0,0,0)); for(i=0;i<8;i++){ for(j=i%2;j<8;j+=2){ r.left=i*dxy; r.top=j*dxy; r.right=(i+1)*dxy; r.bottom=(j+1)*dxy;

简单画图程序课程设计报告

目录 1 基本功能描述----------------------------------------------------------2 2 设计思路----------------------------------------------------------2 3 软件设计----------------------------------------------------------4 3.1 设计步骤----------------------------------------------------------4 3.2 界面设计----------------------------------------------------------8 3.3 关键功能实----------------------------------------------------------9 4. 附录----------------------------------------------------------9 4.1 调试报告----------------------------------------------------------9 4.2 测试结果----------------------------------------------------------10 4.3关键源代码---------------------------------------------------------12 5 结论与心得体会----------------------------------------------------------11 6. 参考文献----------------------------------------------------------11 7. 思考题----------------------------------------------------------11

C++大作业项目报告--贪吃蛇游戏的MFC设计

“C++程序设计”课程大作业 项目报告 项目名称:贪吃蛇游戏的MFC设计 姓名:XXX 学号:XXX 班级:XXX 日期:2013.12.25

小组概况

目录 1系统功能设计 (4) 2系统总体结构 (4) 3本人工作内容 (5) 4项目总结 (6) 5相关问题的说明 (6)

1系统功能设计 在一个密闭的空间内,通过按键上的四个光标控制蛇的上下左右四个方向移动,蛇头碰撞到食物则表示食物被蛇吃掉,这时蛇的身长长一节,接着出现食物,等待被蛇吃掉,如果蛇在移动过程中,蛇头撞到墙壁或者身体与蛇头接触则游戏结束。 2系统总体结构 2.1设计思路说明 在数据结构上,用数组存储蛇以及蛇的运动区域。在数组中,每个元素有四个云感动方向,分别为RIGHT,LEFT,UP,DOWN.在没有蛇身的区域,数组的元素值为0。在蛇身的每个节点,用一个数组元素存储当前蛇节点的运动方向。通过改变数组中元素的值来表示蛇身的移动。在程序中运用定时器来保证蛇的持续移动。每个一定的时间间隔,蛇移动一格。在设计界面时。在Visual Studio 6.0的环境下,建立基于对话框的单文档工程,在工程下设计游戏界面,实现贪食蛇运行算法。在对话框中画出一个矩形,实现封闭空间。在大矩形中,用20x20的像素单位绘出蛇身,当蛇每移动一小格的时候,重绘整个窗口。在对蛇身进行绘画时。通过数组元素的值将蛇身在对话框的矩形中显示出来。在蛇身运动时,首先在蛇头位置蛇身增长一个节点,然后判断蛇头是否到达食物所在位置,若在食物所在位置,则蛇尾不减一,蛇身继续移动,若蛇头不再食物位置,则蛇尾减一,蛇身继续移动。若蛇头越界或者蛇头与蛇身重叠,则游戏结束,并弹出得分。 2.2重要的MFC 1.CMenu:菜单 2.CView:视图,负责内存数据与用户的交互。包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应)。最重要的是OnDraw(重画窗口),通常用CW nd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、快捷键和其他用户消息。另外,自己附加的许多功能都要加在里面,例如:背景音乐。 3.CDC:设备文本。无论是显示器还是打印机,都是画图给用户看。这图就抽象为CDC。CDC与其他GDI(图形设备接口)一起,完成文字和图形、图像的显

MFC实验报告

MFC实验报告 班级:地信10902 学生姓名: ***** 学号:200901496 指导老师:李功权老师 日期: 2011-11-28

一、程序分析与设计 实验目的:通过键盘上方向键实现图像的移动 实验方法:首先声明一个存放圆形的数据成员,通过WM_KEYDOWN消息响应函数,通过改变图像的left、right、top、bottom属性,控制图像的位置。 二、源程序 数据的初始化: CMyDoc::CMyDoc() { // TODO: add one-time construction code here m_crlRect.left = 30; m_crlRect.top = 30; m_crlRect.right = 80; m_crlRect.bottom = 80; } 绘制函数: void CMyView::OnDraw(CDC* pDC) { CMyDoc* pDoc = GetDocument(); ASSERT_V ALID(pDoc); // TODO: add draw code for native data here ASSERT_V ALID(pDoc); pDC->Ellipse(pDoc->m_crlRect); } 消息响应函数: void CMyView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: Add your message handler code here and/or call default CMyDoc * pDoc = GetDocument(); CRect clientRec; GetClientRect(&clientRec); switch(nChar) { case VK_LEFT: if (pDoc->m_crlRect.left>0) { pDoc->m_crlRect.left -= 5; pDoc->m_crlRect.right -= 5; } break;

MFC绘图教程大全

本文由hoplee_2010贡献 ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 MFC MFC绘图 MFC编程学习的基本目标编程学习的基本目标 可以进行简单的基于MFC的图形界面编程的图形界面编程可以进行简单的基于 理解Windows编程的基本概念。编程的基本概念。理解编程的基本概念鉴于教学时间进度限制,鉴于教学时间进度限制,更复杂的应用程序开发通过自学完成。自学完成。 实现基本MFC应用程序需要掌握如下内容:应用程序需要掌握如下内容:实现基本应用程序需要掌握如下内容 Windows编程基本概念编程基本概念文档/视图结构文档视图结构文档读写对话框及标准控件的使用菜单栏的使用绘图及鼠标消息的处理 3/21/20112 主要内容 GDI与设备环境(DC)与设备环境()与设备环境用CDC绘图绘图应用举例绘图工具类 3/21/2011 3 图形设备接口(图形设备接口(GDI)) Windows提供了一个称为图形设备接口提供了一个称为图形设备接口(Graphics Device Interface,GDI)的抽象接口。的抽象接口。,的抽象接口GDI作为作为Windows 的重要组成部分,负责管理用的重要组成部分,的重要组成部分户绘图操作时功能的转换。户绘图操作时功能的转换。用户通过调用GDI函数与设备打交道,GDI通过函数与设备打交道,用户通过调用不同设备提供的驱动程序将绘图语句转换为对应的绘图指令,避免了用户对硬件直接进行操作,的绘图指令,避免了用户对硬件直接进行操作,从而实现设备无关性(显示器或打印机)。从而实现设备无关性(显示器或打印机)。 3/21/2011 4 GDI的图形输出的图形输出 应用程序可以使用GDI创建如下图形输出应用程序可以使用 矢量图形:画线和填充图形,包括点、直线、曲线、多矢量图形:画线和填充图形,包括点、直线、曲线、边形、扇形和矩形等。边形、扇形和矩形等。光栅图形:光栅图形:通过光栅图形函数对以位图形式存储的数据进行操作,包括各种位图和图标的输出。进行操作,包括各种位图和图标的输出。 屏幕:对若干行和列的像素操作屏幕:打印机:打印机:对若干行和列的点阵输出直接从内存到显存的复制操作,速度快,内存要求高。直接从内存到显存的复制操作,速度快,内存要求高。 文本:以图形方式输出文本,文本:以图形方式输出文本,以逻辑坐标为单位计算输出位置,是以行为单位。出位置,而DOS是以行为单位。用户可以设置文本的各是以行为单位种效果,如加粗、斜体、设置颜色等。种效果,如加粗、斜体、设置颜色等。 3/21/2011 5 设备环境

mfc实验设计报告

《面向对象程序设计》数学与计算机学院 VC++课程设计 设计题目:学生信息管理系统 学生学号:04 学生姓名:刘正 学生专业:信息与计算科学 学生班级:10级信计三班 指导老师:李建湘 制作时间:2011年12月14日

目录 前言 (2) 系统需求分析 (3) 程序设计思路 (3) 模块分析 (5) 主要功能图示及代码 (9) 创新内容 (17) 存在的问题与不足 (17) 收获与感想 (18) 程序其它重要源代码 (19) 后记 (27) 十一、参考文献 (28)

前言 作为大二的一名学生,我们已经学习汇编语言快一年了,但是自己从来没有做过一个有实用价值的程序。总是怀疑我们学的c语言,c++以后会有用吗几乎都是编写一些数学计算题。直到老是教我们MFC 编程后,才知道应用程序的设计过程。说实话,在课程设计之前,我没有听过什么MFC编程,所以在设计的过程中也是困难重重,每走一步都是相当艰难的。从开始设计到完成设计,我花了两个多星期,中间重做了无数次。真的难以想象爱迪生发明电灯时是怎么熬过来的。这个程序虽然不完美,但是花了我不少的心血。这将是我程序生涯的开始! 学习MFC编程,最重要的就是自学。刚开始,什么都不懂,为什么要这么做好多函数都不不知道是干什么用的,更不用说使用它们。因此,不得不借助图书馆和网络了解它们。MFC函数库很庞大,我这次用到的微乎其微,以后还得不断的学习和熟悉。一个那么庞大的函数库,我们该如何掌握它呢通过这半个多月的学习,我个人觉得最重要的就是多练习,只有不断的练习,才能掌握它们的规律,帮助我们学好MFC函数库。 接下来,我将把这些天的成果在这里展现出来,与大家一起分享这份来之不易的喜悦!

MFC画图实验报告

MFC画图程序实验报告 一.实验目的 用基于单文档应用程序创建一个类似Windows画图板的程序。功能主要有:手绘线,简单图形,画笔和画刷颜色的选择,画笔粗细的选择,文字的编辑与输出。具有菜单,通过菜单执行画线,曲线,矩形,圆角矩形,椭圆的功能,能填充图形设置图形的颜色,,实现重做和撤销,并设置字体的属性。 二.实验内容 (1). 首先打开主菜单,在主菜单中添加菜单边宽,颜色,图形以及文字。 画图程序的主界面如下: (2). 边宽下拉菜单中有1,5,10,20四种画笔的宽度可以选择,颜色菜单中可对画笔和画刷的颜色调用“颜色选择通用”对话框进行设置,文字菜单中可设置文字的属性。 void CMfcView::Onbrush() //画刷颜色按钮进行COMMAND消息响应,选择并且创建{ 画刷风格和颜色; // TODO: Add your command handler code here CColorDialog dlg; dlg.DoModal(); //打开颜色选择通用对话框 brush.Detach(); brush.CreateHatchBrush(HS_DIAGCROSS,dlg.GetColor()); } void CMfcView::Onpen() //画笔颜色按钮进行COMMAND消息响应,创建画笔。 { 画笔风格为PS_DOT,由返回的整形变量width确定画笔的宽度。 // TODO: Add your command handler code here CColorDialog dlg; dlg.DoModal();

pen.Detach(); pen.CreatePen(PS_DOT,width,dlg.GetColor()); } void CMfcView::Onbian() //文字编辑按钮COMMAND消息响应 { // TODO: Add your command handler code here memset(&lf, 0, sizeof(LOGFONT)); // 将lf中的所有成员置0 CFontDialog dlg(&lf); dlg.DoModal(); //打开字体对话框 CFont cf; dlg.GetCurrentFont(&lf); cf.CreateFontIndirect(&lf); } 画笔颜色选择对话框: 使用字体对话框:

c++课程设计报告(简易画图板)

软件工程 专业课程设计 (2012/2013学年第2学期)题目:简易画图板的设计与实现专业软件工程 学生姓名 HJC 指导教师lsw 指导单位电子与信息工程学院软件工程专业日期2013年7月18日

教 师 评 语 教师签名: 年月日 成 绩 评 定 备 注

一、课题名称 设计题目:简易画图板的设计与实现 二、课题内容和要求 利用MFC完成画图板的基本功能。此程序将实现简单的绘图功能,包括点、直线、矩形、椭圆、三角形、任意多边形的绘制。并且能实现绘图的控制,包括画笔宽度,画笔样式和画笔颜色,画刷样式,画刷颜色和字体的设置,图形的保存和打开。 三、需求分析 1) 在单文档菜单中,在菜单行中可插入一个菜单项,命名为绘图工具,在下拉菜单中可分别设置绘制的图形形状,如直线、矩形及椭圆,再插入一个菜单项,命名为设定,可提供画笔、画刷的样式及颜色选择,还有字体的设置。如果不选择,则按默认的画笔,画刷字体来绘制图形。 2) 选择好图形后,通过鼠标可以绘制出相应的直线,矩形,椭圆,三角形及任意多边形,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决定图形的大小,当鼠标弹起,此图形则绘制完毕。 3) 增添工具栏,设置绘制的图形形状,线色以及填充色,可更方便地选择相应的功能。 四、概要设计 1) 对需要用到的变量进行初始化。 2) 选择相应的图形之后就响应相应的消息处理函数,给m_shapeTyp e赋对应的值。选择不同的线宽,线色与填充色,即可改变画笔或画刷的属性。 3) 鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,刷新,得到绘制图形。 4) 选择图形或其它属性,可进行下一次绘制。 开始 定义并初始化变shape 线色m_ncolor 填充 色m_fcolor 画笔 pen画刷brush绘图起 选择线宽

相关文档