画图程序设计报告(MFC)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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.将项目的默认图标换成自己设计的图标。
3 系统的实现
3.1 视图设计
利用MFC AppWinzard生成画图应用程序框架具体步骤如下:
(1)执行VC程序,选择File|New命令,弹出New对话框.单击Projects标签,转到Projects选项卡,选择MFC AppWizard(exe)选项,然后在Project name文本框中输入Draw 文本框是指项目的本地路径。
(2)由于本程序是实现画线,要在视图中完成,所以首先创建一个基于单文档的应用程序。
3.2 编辑资源
(1)编辑对话框及控件资源
图3.1编辑对话框
利用Visual C++提供的资源编辑器对窗口进行编辑。添加若干菜单。
该画图小程序的流程图如下3.2:
3.3 编程思路及各个函数的实现
实现画矩形、画椭圆和直线,是通过绘图命令的简单的平面几何体,而实现随手画则是画直线集成的结果,所以画矩形调用CDC对象Rectangle()函数,画椭圆调用CDC 对象Ellipse()函数等。处理随手画功能,主要在OnMouseMove()函数中进行,用小段直线来记录鼠标的移动过程,时刻以鼠标的新位置作为画线的其实位置进行实现。
1.在视图类CdrawView中添加成员变量及函数声明,添加的代码如下:
public:
CDrawDoc* GetDocument();
void ResetAllFlags(); //重新设置所有的标志
bool m_bSketch; //是否随手画
bool m_bEllipse; //是否画椭圆
bool m_bRectangle; //是否画矩形
bool m_bLine; //是否画直线
CPoint m_startPoint; //起始点坐标
CPoint m_LastEndPoint; //结束点坐标
2.实现构造函数和各菜单的响应函数,其代码如下:
void CDrawView::OnDrawRectangle()
{
ResetAllFlags();
m_bRectangle=true;//设置画矩形
}
void CDrawView::OnDrawSketch()
{
ResetAllFlags();
m_bSketch=true; //设置随手画
}
void CDrawView::OnDrawEllipse()
{
ResetAllFlags();
m_bEllipse=true; //设置画椭圆
}
void CDrawView::OnDrawLine()
{
ResetAllFlags();
m_bLine=true; //设置画直线
}
下面是为各菜单添加核对标记:
void CDrawView::OnUpdateDrawEllipse(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_bEllipse);//椭圆}
void CDrawView::OnUpdateDrawRectangle(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_bRectangle);//矩形}
void CDrawView::OnUpdateDrawSketch(CCmdUI* pCmdUI) {pCmdUI->SetCheck(m_bSketch);//随手画}
设置默认标志变量:
void CDrawView::ResetAllFlags()