MFC画图程序(含源文件).doc

MFC画图程序(含源文件).doc

ID:57609767

大小:328.00 KB

页数:8页

时间:2020-08-28

MFC画图程序(含源文件).doc_第1页
MFC画图程序(含源文件).doc_第2页
MFC画图程序(含源文件).doc_第3页
MFC画图程序(含源文件).doc_第4页
MFC画图程序(含源文件).doc_第5页
资源描述:

《MFC画图程序(含源文件).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、面向对象课程作业我做的是画笔程序,首先把作业要求写在开头。作业要求:1、程序界面参考Microsoft画图程序。2、能够支持画直线、自由连线(随鼠标移动连线)、实体圆形、实体矩形、实体椭圆3、支持区域选中(通过鼠标拖拽方框选中),并删除选中区域内所画的形状。4、支持各种笔形画图时的前景和背景色。5、支持图擦功能,选中图擦时,随着图擦的移动,根据图擦的大小,将图擦经过的区域中的形状相关部分清除。6、支持打印、打印预览功能,并保持图片所见即所得。支持将所画的内容保存为文件,格式为BMP格式。本设计报告包括以下几部分:一.程序实现的功能二

2、.程序功能的具体实现方法三.程序示例说明四.课程设计的体会五.本程序的不足之处六.本程序参考文献一.程序实现的功能程序所用开发工具:VisualC++6.0编程工具。实现功能:能够支持画直线、自由连线(随鼠标移动连线)、实体圆形、实体矩形、实体椭圆;支持区域选中(通过鼠标拖拽方框选中),并删除选中区域内所画的形状;支持各种笔形画图时的前景和背景色;支持图擦功能,选中图擦时,随着图擦的移动,根据图擦的大小,将图擦经过的区域中的形状相关部分清除;支持打印、打印预览功能;并保持图片所见即所得;支持将所画的内容保存为文件,格式为BMP格式。

3、另外本程序还支持任意设置画笔的颜色,设置画笔笔画的宽度(粗细),支持当窗口发生重绘时将原来所绘的图形在新窗口中重绘出来。二.问题分析按照程序设计实现功能的要求,其中应该有以下几部分,划线的实现部分可以在鼠标单击响应函数中实现,其中有:鼠标左键按下,鼠标左键移动,鼠标左键弹起等;设置颜色部分应该创建一个颜色设置对话框,这可用MFC自带的类来实现,为此我们在菜单中添加一个设置菜单,并且下面添加颜色设置菜单项,并且对此菜单项的添加命令响应函数,在其中创建颜色对话框,并且将我们选择的颜色保存到我们预定义的对象中去;同理笔画宽度和背景色的设置

4、也是如此;其中在背景色的设置中当我们选择某种颜色设置背景色时,程序将会刷新窗口,并且用新的背景色填充视口背景。绘图保存为BMP文件的部分,主要是要了解BMP文件的结构,主要是文件头信息,在保存文件时我们要现将BMP文件头信息保存到文件中,然后才是具体的像素信息(如像素位置,颜色);打印和打印预览要实现所见即所得的话,要求我们转换坐标映射模式,从而实现所见即所得的效果。另外程序还实现了选定区域并进行擦出的功能和任意擦除的功能;当窗口发生重绘时,我们以前所绘制的图形会在新窗口中显示出来,即实现了图形的持续显示功能。本程序中我认为较难的部

5、分是BMP文件的保存部分。各种功能的具体实现见下部分。三.程序的具体实现主要分为以下几个部分:1.绘制任意连线,直线,矩形,椭圆的实现这些功能主要是在响应鼠标单击消息的函数中实现的,其中有鼠标左键按下消息响应函数:OnLButtonDown(),鼠标左键弹起消息响应函数:OnLButtonUp()和鼠标移动消息响应函数OnMouseMove()。为了区分,我在视类中增加了一个UINT型成员变量m_nDrawType,用来标志所画的图形种类;增加了UINT型成员变m_nlinewidth,用来标志笔画的宽度;用COLORREF型对象m

6、_clr来标志笔画的颜色,另外还有标志绘制图形区域起点和终点的两个CPoint对象。2.画笔颜色设置在程序菜单中添加了颜色设置菜单项,并在视类中添加响应此菜单项的命令响应函数,其中生成了颜色对话框,其类型是:CColorDialog类型。当我们单击颜色设置菜单项时会弹出颜色设置对话框,我们可以选择我们所喜欢的颜色来进行绘图,并且以后所绘的图形都是我们所选定的颜色,除非再次更改颜色。当我们单击颜色对话框上的确定按钮后,我们所选择颜色将会保存到视类的m_clr对象中。1.笔画宽度的设置首先在程序菜单中添加笔画宽度菜单项,并在视类中添加响

7、应此菜单项的命令响应函数,其中生成了笔画宽度设置对话框,其类型是:Csetwidthdlg类型(自己创建的类)。当我们单击笔画设置菜单项时会弹出笔画设置对话框,我们可以输入我们所喜欢的宽度来进行绘图,并且以后所绘的图形都是我们所选定的宽度,除非再次更改笔画宽度。当我们单击笔画宽度对话框上的确定按钮后,我们所选择宽度将会保存到视类的m_nlinewidth对象中。2.背景色的设置和笔画颜色设置类似,过程相同,此处不再赘述。此处主要是选定背景色后要用选定的背景色去填充窗口背景。首先我们要获得视口的大小,然后创建画刷去填充背景。3.选定区

8、域并擦除首先我们要选定区域,然后根据自己需要选择是否要擦除所选中区域中绘制的图形,为此我们在视类中设置了两个CPoint对象来标志所选中区域的起点和终点。若需要擦除,则单击擦除按钮擦除。4.图擦的实现图擦的实现主要在OnMouseMo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。