- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)