mfc简单绘图程序报告

mfc简单绘图程序报告

ID:27786196

大小:140.00 KB

页数:15页

时间:2018-12-06

mfc简单绘图程序报告_第1页
mfc简单绘图程序报告_第2页
mfc简单绘图程序报告_第3页
mfc简单绘图程序报告_第4页
mfc简单绘图程序报告_第5页
资源描述:

《mfc简单绘图程序报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、简单绘图程序1需求说明1.1问题描述设计一个简单的绘图应用程序,可以绘制图形或自由绘制线段,可以更改颜色、画笔粗细、保存文件。1.2功能说明1.图形绘制功能:直线、椭圆、矩形。在菜单栏中选择需要的图形(也可以通过工具栏中选择)用鼠标便能在视图中绘出相应的图形。2.可以绘制自由线段3.对图形的操作:能通过菜单栏弹出对话框选择线宽、自定义颜色,也可以擦除绘制的线段。4.可以保存绘图文件,保存后打开可以继续绘制。2.1.3数据说明在程序运行以后,当用户单击某个菜单项时,应该把用户的选择保存起来,以便随后的绘图操作使用。在CDzyView类中添加一个私有变量xz;用来

2、保存用户的选择(直线、矩形、椭圆、自由绘图)在绘制时都可有两点来确定其图形。当鼠标左击时得到一个点,当鼠标停止移动时得到另外一个点。为视图类CDzyView分别捕获鼠标左键按不和弹起这两个消息。当鼠标左键按下时,需要将鼠标当前按下点保存至sx、sy,在鼠标移动停止后,将当前坐标保存至ex,ey.其他主要数据说明:intfd判断是否为由绘图模式intw线宽intRRGB中的RintGRGB屮的GintBRGB中的BCGraph类中intm_nTypc:保存后重绘时用户的选择intqclx;重绘起点Xintqcly;重绘起点yintzdx;重绘终点Xintzcly

3、;重绘终点yCLinc类中intex;重绘线宽intsx;重绘起点Xintsy;重绘起点yintzx;重绘终点Xintzy;重绘终点yintw;重绘线宽自定义颜色对话框关联变量:IDCEDITREDintmRedIDC_EDIT_GREENintm_GrccnIDCEDITBLUEintmBlueIDCSCROLLREDCScrollBarmSredIDC_SLIDER_GREENCSlidcrCtrlm_SgrccnIDCSPINBLUECSpinButtonCtrlmSblue2分析、设计与实现2.1主要功能设计与实现2.1.1有关文档视图功能的设计与实现

4、单文档结构可序列化的类CGraph从CObjcct派生可序列化的类CLine从CObject派生对话框类zdyyanse从CDialog派生2.1.2有关消息处理的设计与实现方案:需要响应的消息应有:鼠标移动、鼠标左键按下、鼠标左键抬起、菜单栏中的画矩形、画直线、画椭圆、自由绘图、更多选项中的自定义颜色、工具栏中的红色、蓝色、绿色、线宽1、线宽2、线宽3、橡皮擦。整体思路为,用户选择不同的功能后就响应相应的消息处理函数,给xz赋对应的值。选择不同的线宽,线色,即可改变画笔或画刷的属性。鼠标的按K响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的

5、坐标,鼠标的拖动响函数OnMouseMoveO改变终点的坐标,鼠标的弹起响应OnLButtonUpO,得到绘制图形。ID_DRAW_ELLIPSE:COMMAND画椭圆ID_DRAW_LINE:COMMAND画直线ID_DRAW_RECTANGLE:COMMAND画矩形ON_WM_LBUTTONDOWN鼠标左键按下ON_WM_LBUTTONUP鼠标左键抬起ON_WM_MOUSEMOVE鼠标移动voidCDzyView::OnDrawEllipse(){//TODO:Addyourcommandhandlercodeherexz=3;}//当用户选择画椭圆,将变

6、量xz赋值为3.voidCDzyView::OnDrawLine(){//TODO:Addyourcommandhandlercodeherexz=l;}//当用户选择画直线,将变量xz赋值为1.voidCDzyView::OnDrawRectangle(){//TODO:Addyourcommandhandlercodeherexz=2;}//当用户选择画矩形,将变量xz赋值为2.voidCDzyView::OnLButtonDown(UINTnFlags,CPointpoint)//TODO:Addyourmessagehandlercodehereand

7、/orcalldefaultsx=point.x;sy=point.y;fd=l;CView::OnLButtonDown(nFlags,point);}//鼠标左键按下,将当前坐标赋值给sx,sy并判断鼠标是否按下(fd=l)voidCDzyView::OnLButtonUp(UINTnFlags,CPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultCClientDCdc(this);//this一般指向木窗U或当前活动视图CPenpen;//定义画笔pen.CreatePen(

8、PS_SOLID,w,RGB(R,G,

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

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

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