MFC画笔程序实验报告课件.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
功能说明 1、 在 画图之前,点菜单【画笔】 ,设置画笔之后才能绘图 图 1、画笔设置 2、左侧工具条依次对应直线、自由画线、实体矩形、实体圆形、实体椭圆、选 中区域、擦除功能 图 2、图形绘制及编辑 3、 选中区域后删除,点击菜单【编辑 删除选定区域】,即可完成删除功能 4、 颜色设置,点击菜单【颜色】 ,弹出颜色对话框,选中颜色 图 3、颜色设置 5、 背景设置,点击菜单【背景设置】 ,弹出对话框,选择“是”加载默认位图 资源 图 4、背景设置 6、点击保存按钮,生成图片保存到工程文件的文件夹中 问题分析 建立 MFC单文档工程文件: Draw 一、画图程序支持画直线、 自由连线 (随鼠标移动连线) 、实体圆形、 实体矩形、 实体椭圆。 在主窗口中添加工具条, 工具条上有直线、 自由连线、实体圆形、实体矩形、 实体椭圆的的图标,命名为 IDR_DRAWFRAM,E 在 CmainFrame的 OnCreat 函数 中将工具条加载上去,函数名为: LoadToolBar 二、支持区域选中(通过鼠标拖拽方框选中) ,并删除选中区域内所画的形状。 鼠标拖拽方框选中:可以设计绘制为背景为透明色的矩形 删除选中区域即将选中矩形上的图像去掉, 变为系统白色区域, 即:设计矩形填 充为白色 三、支持各种笔形画图时的前景色和背景色 前景色: 在菜单中添加颜色菜单, 单击颜色菜单, 弹出颜色选择框, 选择颜色对 画笔的颜色进行设置。 背景色: 在菜单栏中添加背景设置按钮, 选择背景设置, 则默认设置图画位图背 景为选定的文件 四、支持图擦功能,选中图擦时,随着图擦的移动,根据图擦的大小,将图擦经 过的区域中的形状相关部分清除。 在工具条上添加擦出按钮, 随着鼠标的移动, 鼠标经过的区域图形消失, 采 用 InvalidateRect函数、 五、支持打印、打印预览功能,并保持图片所见即所得。 在视图窗口绘制图形是在逻辑坐标系中展示的, 而打印设备对应的是物理坐 标系。为了实习所见即所得,需要继续逻辑坐标系到物理坐标系的转换。 六、支持将所画的内容保存为文件,格式为 BMP格式。 在菜单【文件】中有“保存按钮” ,点击此按钮,将所绘图形保存为 .bmp 文 件。MFC没有提供文件的保存函数,需要自己设计算法,以完成 .bmp 文件的保 存。首先当前显示的屏幕位图拷贝到 BITMAP中,然后将 BITMAP保存到内存中。 方案设计 一、画图程序支持画直线、 自由连线 (随鼠标移动连线) 、实体圆形、 实体矩形、 实体椭圆。 实现步骤: (1) 在主窗口中添加工具条,工具条上有直线、自由连线、实体圆形、实 体矩形、实体椭圆的的图标, 命名为 IDR_DRAWFRAM,E在 CmainFrame 的OnCreat函数中将工具条加载上去,函数名为: LoadToolBar (2) 直线图标 ID 号为:ID_SLINE; 自由连线图标 ID号为:ID_CLINE; 实体圆形 ID 号为:ID_ROUND 实体椭圆图标 ID 号为:ID_ELLIPSE 实体矩形 ID 号为:ID_RECTANGL (3) 在 CDrawView 类中添加 m_nDrawType 变量控 制画图类型,添加 m-ptStart 变量,保存鼠标起始点。为以上 ID号添加 COMMAND函数, 分别为:OnSline() 、OnCline() 、OnRound()、OnRectangle() 、OnEllipse()。 函数中控制 m_nDrawType的值,以控制图形类型 (4) 在 CDrawView 类中添加成员函数 OnLButtonDown、OnLButtonUp 和 OnMouseMove,OnLButtonUp 中完成直线、 实体圆形、 实体矩形、 实 体椭圆的绘制; OnMouseMove中完成自由连线的绘制。 (5) 为保证视图窗口刷新时,图形能够再现,添加类 CGraph,此类中包 含变量 nFlags(控制 OnMouseMove函数)、m_nDrawType(绘图类型) 以及 m-ptStart 和 m-ptEnd(鼠标起始点) (6) 在 CDrawView 中 添 加 CptrArray 类 型 变 量 m_ptArray , 在 OnMouseMove,OnLButtonUp 函数中将 nFlags、m_nDrawType 以及 m-ptStart 和 m-ptEnd 保存到中。 (7) 在OnDraw函数中利用 m_ptArray 中的信息,将视图中的图形再现 二、支持区域选中(通过鼠标拖拽方框选中) ,并删除选中区域内所画的形状。 实现步骤: (1) 在工具条 IDR_DRAWFRAME上添加区域选中图标,ID 号为 ID_SELEC。T 当按

文档评论(0)

liuxiaoyu99 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档