画图程序设计报告(MFC)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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()

相关文档
最新文档