任务2——画图程序实例-单文档

上传人:豆浆 文档编号:24903123 上传时间:2017-12-08 格式:PDF 页数:5 大小:116.88KB
返回 下载 相关 举报
任务2——画图程序实例-单文档_第1页
第1页 / 共5页
任务2——画图程序实例-单文档_第2页
第2页 / 共5页
任务2——画图程序实例-单文档_第3页
第3页 / 共5页
任务2——画图程序实例-单文档_第4页
第4页 / 共5页
任务2——画图程序实例-单文档_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《任务2——画图程序实例-单文档》由会员分享,可在线阅读,更多相关《任务2——画图程序实例-单文档(5页珍藏版)》请在金锄头文库上搜索。

1、 VC+画图程序示例 一. 开发目标及软件功能 了解并掌握图形及文本编程的方法及编程步骤。主要内容包括: (1)了解Visual C+的CDC(Device Context,设备环境)类。 (2)图形绘制中画点、线、多边形、圆的方法。 (3)学习颜色和颜色对话框的使用方法。 (4)图形设备接口中画笔、画刷的设置方法。 二. 编程步骤 1. 启动Visual C+6.0,选择File | new 菜单项,弹出New 对话框。单击Projects 选项卡,项目类型选择MFC AppWizard(exe),在Project name中填入工程名“MyDraw”,在Location中填用户子目录路径。

2、 2. 在程序向导的第1步选择建立一个单文档的应用程序,点击“Finish”结束向导。 3. 点击左侧工作区间下方的“ResourceView”标签,点开“Menu”,双击“IDR_MAINFRAME”,打开主菜单进行编辑。 4. 在顶层菜单的caption栏中输入“画图类型”;下拉菜单第一栏的caption栏中输入“直线”,设定其ID号为ID_STRAIGHT。同理,“矩形”菜单项设定其ID号为ID_RECTANGLE,“圆形”菜单项设定其ID号为ID_CIRCLE,“椭圆”菜单项设定其ID号为ID_ELLIPSE。在三个菜单项之间加入分隔符(拖入一个空白菜单项,勾选其属性“Separato

3、r”即可)。 5. 点击菜单“View ClassWizard”为菜单项命令添加消息映射函数。在Class name中选择“CMyDrawView”类,目标ID号中选择“ID_STRAIGHT”,在“Messages”中选择“Command”,双击,弹出“添加成员函数”对话框,点击“OK”,确认函数名为“OnStraight”。同理,选择上面设置的各个ID号,分别添加成员函数“OnRectangle”、“OnCircle”、“OnEllipse”。 6. 在CMyDrawView类中定义用于表明画图类型的成员变量:在左侧Classview标签中找到CMyDrawView类,右键点击,在弹出的菜

4、单中选择加入成员变量Add Member Variables,弹出如下对话框: 在对话框中输入变量类型int和变量名m_nDrawType,点击OK确定,则在CMyDrawView中添加了一个共有型的成员变量,用以表示画图类型。当m_nDrawType=1时,画直线;同理等于2、3、4、5时,分别画矩形、圆、椭圆、曲线。 同理,定义CPoint型的变量m_ptOrigin,用来表示鼠标点的初始位置x、y坐标。 7. 初始化参数:在CMyDrawView类的构造函数CMyDrawView ()中添加初始化代码: CMyDrawView:CMyDrawView() / TODO: add cons

5、truction code here m_nDrawType=0; /将画图类型变量初始化为0 m_ptOrigin=0; /将坐标点初始化为0 8. 在OnStraight()、OnRectangle()、OnCircle()、OnEllipse()、OnCurve()函数中对变量m_nDrawType分别赋值,即表示用户点击该菜单项时,变量m_nDrawType被相应赋值。输入下面的代码: void CMyDrawView:OnStraight() / TODO: Add your command handler code here m_nDrawType=1; / 点击OnStraigh

6、t对应的菜单项时,赋值为1 其余各消息映射函数同理,分别为m_nDrawType=2 、3、4、5。 8. 为鼠标响应添加消息映射函数。这一步实现的功能是:当鼠标左键按下时,保存鼠标当前位置坐标作为画图的起始点,当鼠标左键抬起时,记录鼠标当前位置作为画图的终止点,根据鼠标前后两次位置画出直线、矩形、圆等。具体操作步骤为:点击菜单“View ClassWizard”,在Class name中选择“CMyDrawView”类,Messages中选择WM_LBUTTONDOWN,双击添加鼠标左键按下的消息映射函数,同理选择WM_LBUTTONUP,添加鼠标左键抬起的消息映射函数。 void CMyD

7、rawView:OnLButtonDown(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call default m_ptOrigin=point; /保存鼠标当前位置坐标作为画图的起始点 CView:OnLButtonDown(nFlags, point); void CMyDrawView:OnLButtonUp(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call def

8、ault CClientDC dc(this); /定义当前客户区设备对象,用来画图,作用与OnDraw函数中的pDC相同。 switch(m_nDrawType) / case 1: dc.MoveTo(m_ptOrigin); / dc.LineTo(point); break; case 3: dc.Rectangle(CRect(m_ptOrigin,point); break; case 4: point.y = m_ptOrigin.y+(point.x-m_ptOrigin.x); dc.Ellipse(CRect(m_ptOrigin,point); case 5: dc.El

9、lipse(CRect(m_ptOrigin,point); break; CView:OnLButtonUp(nFlags, point); 这一步完成后,编译运行,已经可以用鼠标画出各种图形了。 9. 接下来设置画图所用的线型。首先创建线型设置对话框,点击菜单项“Insert Resource”,插入一个对话框资源,这个对话框将来作为画图的线型参数输入窗口。在参数输入对话框上右键点击,弹出属性对话框,设定其ID号为IDD_LINETYPE_DLG,设定其标题Caption为“线型设置”。然后在对话框上添加一个“Group Box”控件,并在其中添加5个单选钮“Radio Button”,如

10、下图所示,并为每一个控件设定其标题Caption为“实线”等。记着把第一个单选钮的“Group”属性勾选上,这样后面的单选钮跟第一个为一组了。为对话框创建一个类“CLineType”。 10. 为对话框添加一个类:在对话框的空白区域处双击鼠标,弹出ClassWizard窗口,在添加一个新类对话框中点击OK按钮,将新类命名为CLineType,其余选择默认值,点击OK按钮确定。 11. 为对话框中的单选钮控件添加相应的成员变量:点击菜单“View ClassWizard” ,点击“Member Variables”标签项,为对话框中的单选钮添加int型的成员变量m_Line_Type,如下图所示

11、。 12. 在资源视图(ResourceView)中打开主菜单资源IDR_MAINFRAME,添加顶层菜单项“绘图设置”,弹出下拉菜单项“线型样式”,并如图设置ID号为ID_LINETYPE及标题等, 同理添加下拉菜单项“线条颜色”,设置ID号为ID_COLOR。 13. 点击菜单“View ClassWizard” 为菜单项命令添加消息映射函数。在Class name中选择“CMyDrawView”类,目标ID号中选择“ID_LINETYPE”,在“Messages”中选择“Command”,双击,弹出“添加成员函数”对话框,点击“OK”,确认函数名为“OnLinetype”;同理添加消息映

12、射函数OnColor()。 14. 在CMyDrawView定义用于表明线型样式的成员变量:在左侧Classview标签中找到CMyDrawView类,右键点击,在弹出的菜单中选择加入成员变量Add Member Variables,弹出对话框,在对话框中输入变量类型int和变量名linetype,点击OK确定,则在CMyDrawView中添加了一个公有型的成员变量,用以表示线型样式。同理添加表示线条颜色的COLORREF类型的成员变量drawcolor。 15. 初始化参数:在CMyDrawView类的构造函数CMyDrawView ()中添加初始化代码: CMyDrawView:CMyDr

13、awView() / TODO: add construction code here m_nDrawType=0; /将画图类型变量初始化为0 m_ptOrigin=0; /将坐标点初始化为0 linetype=0; /将线型样式初始化为0 16. 在OnLinetype ()函数中定义CLineType类的一个对象,并用这个对象调用DoModal()函数显示出线型设置对话框,将用户的选择赋给变量linetype,用于在后面用相应的线型画图。输入下面的代码: void CMyDrawView:OnLinetype() / TODO: Add your command handler code

14、 here CLineType Dlg; /定义类的一个对象 Dlg.m_Line_Type=linetype; /首先初始化对话框中的变量 if(Dlg.DoModal()=IDOK) linetype=Dlg.m_Line_Type; /将用户的选择赋给变量 17. 在OnColor()函数中定义CColorDialog类的一个对象,并用这个对象调用DoModal()函数显示出颜色设置对话框,将用户的选择赋给变量drawcolor,用于在后面用相应的颜色画图。输入下面的代码: void CMyDrawView:OnColor() / TODO: Add your command handl

15、er code here CColorDialog color; if(IDOK=color.DoModal() drawcolor=color.GetColor(); 18. 在鼠标左键抬起的消息映射函数CMyDrawView:OnLButtonUp函数中,添加画笔的定义和创建函数。 void CMyDrawView:OnLButtonUp(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call default CClientDC dc(this); CPen pen(linetype,1,drawcolor); / 用户选择的线型和颜色创建画笔。 dc.SelectObject( /改变画笔的颜色,线的类型 switch(m_nDrawType) / 原来已经添加的代码,此处略去。 CView:OnLButtonUp(nFlags, point); 19. 在MyDrawView.cpp前面加上CLineType类的头文件: #include LineType.h 编译运行,实现了程序要求的功能。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号