简单画图程序的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象程序设计
课程设计报告
设计题目:简单画图程序的设计
学院:信息工程学院
专业:计算机科学与技术(交通)学号:201224020326
姓名:房战锋
同组同学学号:201224020325
指导教师:张少博
2013 年12 月24 日
目录
第一章:设计目的及内容 (2)
1.1【设计目的】 (2)
1.2【设计内容】 (2)
第二章:基本功能概述 (3)
2.1【工程的新建】 (3)
2.2【单文档简介】 (4)
2.3【添加消息响应函数】 (5)
2.4【资源】 (5)
2.5【设备环境】 (6)
第三章:设计思路 (6)
第四章:软件设计 (7)
4.1【设计步骤及关键代码】 (7)
4.1.1【点、直线、矩形、椭圆的绘制】 (9)
4.1.2【连续线及扇形的绘制】 (11)
4.1.3【画刷】 (12)
4.2【设置对话框】 (14)
4.3【颜色】 (14)
4.4【打开与保存】 (15)
第五章:结论与心得体会 (16)
参考文献: (17)
附录: (18)
【调试报告】 (18)
【测试结果】 (18)
【关键代码】 (18)
第1章:设计目的及内容
1.1【设计目的】
1 学习Visual C++的MFC开发程序的步骤。
2 综合运用所学的类、继承和多态的知识。
3 进一步掌握程序的调试方法。
1.2【设计内容】
1利用MFC的向导,创建基于单文档的应用程序;
2 编程实现,绘制线、圆、矩形的功能;
3 能够设定当前要画的图形样式(最少为以上3种)和图形颜色(最少能够设为以下
4 种颜色:黑、红、绿、蓝)。
4 当窗口重绘后,还能保持原来的图形。
5 选做1:能够选中某些已绘制的图形,并删除之。
6 选做2:能够保存已绘制的图形,下次打开时恢复原状。
第2章:基本功能概述
2.1【工程的新建】
打开Microsoft Visual C++ 6.0 —> 点击File —> New 在Projects中选择MFC AppWizard (exe) ;在Project name中输入工程的名字Graphic,在Location中选择工程存放的路径。填完后点击OK按钮。(如图1)填完后点击OK按钮,弹出对话框(如图2)。在弹出来的对话框中我们可以选择生成三种不同类型的应用程序:单文档、多文档、对话框。
单文档程序如记事本,在一个应用程序中只能对一个文档进行操作,降低了编程的复杂度并减少了运行程序时所需的资源。对某些小型应用(比如文本编辑器或小型图像编辑器)可以采用这种类型的窗口应用程序。
在这个程序中,我们就需要单文档,选择完后点击Next,设置默认,最后点击Finish 完成工程的创建。
图1
图2
2.2【单文档简介】
生成单文档程序后,进行编译,在运行,我们可以看到以下的结果。如图3
图3
在ClassView中,我们可以看到系统自动为我们生成了五个类:CApp , CDoc , CView , CAboutDlg , CMainFrame。如图4
图4
CApp相当于C语言中的main()函数。是程序的起始。
CDoc是用于处理程序中文档的类。
CView主要是处理客户区的可视化的操作的类。
CAboutDlg是处理关于对话框的类。
CMainFrame是非客户区的一些资源的类。
我们主要是对CView 类进行操作。
2.3【添加消息响应函数】
系统为我们生成了一个程序的框架,但是这个框架完成不了什么具体的功能。为了使程序程序完成我们想要做的事,我们要向这个框架中加入一些代码。 VC++程序的运行并不像C语言是按照顺序运行下来的。每当我们完成一个事件,系统就会发出特定的消息,程序就会跳到相应的消息响应函数中执行里面的代码。单击菜单中的View->Class Wizard(或按快捷键Ctrl+W),将会弹出MFC Class Wizard对话框。在Class Name中选择CView,在Messages中选择WM_LBUTTONDBLCLK,点击右边的Add Function按键。这样我们就为程序添加了鼠标左键双击的消息响应函数,函数名为OnLButtonDblClk(UINT nFlags, CPoint point)。我们点击Edit Code按键就可以进入消息响应函数中。我们在消息响应函数中添加如下代码:AfxMessageBox(“Hello Word!”); 运行程序!当我们在客户区中双击鼠标左键时,我们可以看到效果(如图5)。我们在完成双击鼠标左键这个事件后,Windows便会发出WM_LBUTTONDBLCLK这条消息。我们的程序收到这个消息后,就会跳转到鼠标左键双击的消息响应函数内,执行里面的代码。同样的,我们可以添加其他的消息响应函数,如鼠标左键按下,抬起,鼠标移动等(WM_LBUTTONUP、WM_LBUTTONDOWN、WM_MOUSEMOVE等)。我们程序就是在这样的消息响应机制下运行的。
图5
2.4【资源】
在ResoureView 里,我们可以编辑对话框、菜单、工具条、快捷键等资源。点开Menu,可以看到一个ID为IDR_MAINFRAME的菜单。ID是一个标识,实际上是一个无符号整型常量,每一个资源在程序中都有一个唯一的ID号。双击IDR_MAINFRAME,在右边的视图中双击帮助右边的虚线框,弹出菜单属性,在Caption中输入“画图”,并将其关闭。双击画图菜单