《vc实验指导书》word版.doc

上传人:wux****ua 文档编号:8959483 上传时间:2020-04-02 格式:DOC 页数:5 大小:157.50KB
返回 下载 相关 举报
《vc实验指导书》word版.doc_第1页
第1页 / 共5页
《vc实验指导书》word版.doc_第2页
第2页 / 共5页
《vc实验指导书》word版.doc_第3页
第3页 / 共5页
点击查看更多>>
资源描述
实验一 Windows GUI编程实验课程名:VC程序设计专业班级: 12级计科(专升本) 学号: 22 姓名: 罗连欢 实验时间: 2013.3.27 实验地点: K4-203 指导教师: 祁文青 一、实验目的和要求掌握 MFC AppWizardexe向导的使用、MFC 消息映射及消息处理。二、实验内容任务1:编写一个单文档应用程序。程序启动后在用户区显示一个方形,当用鼠标左键单击用户区后,该方形会变为圆形,如果再单击则又变回方形。实验步骤: 设置一个开关变量m_bKey当其值为FALSE时,在OnDraw函数中使用函数Rectangle绘制方形;而当值为TRUE时使用函数Ellipse绘制圆形。再定义一个成员变量m_rectRec存储方形和圆形的尺寸。程序代码如下:/在视图类声明中定义成员变量Private:BOOL m_bKey;CRect m_rectRec;/在视图类的构造函数中对成员变量进行初始化CRec_CrlView:CRec_CrlView():m_rectRec(100,100,400,400) /TODO:add construction code here m_bKey=FALSE;/在视图类鼠标左键按下消息中添加如下代码void CRec_CrlView:OnLButtonDown(UINT nFlags,CPoint point) if(m_bKey) m_bKey=FALSE; else m_bKey=TRUE; InvalidateRect(m_rectRec); CView:OnLButtonDown(nFlags,point);/在视图类的OnDraw函数中添加如下代码void CRec_CrlView:OnDraw(CDC*pDC) CRec_CrlDoc*pDoc=GetDocument(); ASSERT_VALID(pDoc); if(m_bKey) pDC-Ellipse(m_rectRec); else pDC-Rectangle(m_rectRec);运行结果: 运行结果分析: 圆方的变换任务2:编写一个应用程序,该程序运行后在用户区绘制一个圆形,每单击鼠标左键一次,则圆的颜色会变化一次。实验步骤: (1)在视图类声明中定义三个数据成员以描述颜色。int m_clr1,m_clr2,m_clr3;(2)在视图类的鼠标按下消息响应函数中用下面代码改变颜色。void CColorView:OnLButtonDown(UINT nFlags,CPoint point) m_clr1-=10; InvalidateRect(NULL); CView: OnLButtonDown(nFlags, point);(3)在视图类的OnDraw函数中定义画刷和绘制圆形。Void CColorView: OnDraw(CDC*pDC) int clr=RGB(m_clr1,m_clr2,m_clr3); CBrush newBrush(clr);CBrush *oldBrush=pDC-SelectObject(&newBrush);pDC-Ellipse(20,20,220,220);pDC-SelectObject(oldBrush);运行结果: 运行结果分析: 点击鼠标,圆的颜色逐渐加深任务3:编写一个单文档界面应用程序,该程序可以测试在鼠标左键按下时鼠标光标的位置是否处在某规定的矩形框内,如果不在该矩形内则计算机的扬声器会发出“叮”的声音,反之则会在用户区显示光标的位置。实验步骤: (1)用MFC AppWizard创建一个名称为MusInRec的单文档应用程序框架。(2)在视图类的声明中定义一个CRect类的对象来描述矩形,再定义一个POINT结构来存储鼠标在按下时的位置,即在视图类的声明中添加如下代码。Public:POINT m_point;CRect m_rRct;(3)在视图类的构造函数中初始化数据成员:CMusInRecView:CMusInRecView():m_rRct(50,50,250,200) m_point.x=0;m_point.y=0;(4)在视图类的OnDraw函数中写入如下代码。void CMusInRecView:OnDraw(CDC*pDC) CmusInRecDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);/TODO:add draw code for native data hereChar s20;wsprintf(s,”X=%d Y=%d”,m_point.x,m_point.y);pDC-TextOut(5,5,s);(5)在视图类的鼠标左键按下消息响应函数OnLButtonDown中写入如下代码。Void CmusInRecView:OnLButtonDown(UINT nFlags,CPoint point) if(m_rRct.PtInRect(point) m_point.x=point.x; m_point.y=point.y; else MessageBeep(0);InvalidateRect(NULL);CView:OnLButtonDown(nFlags,point);运行结果: 运行结果分析: 在制定位置显示二维坐标任务4:编写一个单文档界面应用程序,该程序在用户区能以在两个矩形的相交矩形为外接矩形画一个椭圆。实验步骤: (1)用MFC AppWizard创建一个名称为RecRec的单文档应用程序框架。(2)在视图类的声明中声明两个描述矩形的成员变量:CRect m_rRec1;CRect m_rRec2;(3)在视图类的构造函数初始化数据成员:CRecRecView:CrecRecView():m_rRec1(50,50,250,200),m_rRec2(100,120,300,400)(4)在视图类的OnDraw函数中写入如下代码。Void CRecRecView: OnDraw(CDC*pDC) CRecRecDoc*pDoc=GetDocument(); ASSERT_VALIDA(pDoc); int x1,y1; int x2,y2;if(m_rRec1.left m_rRec2.left) x1= m_rRec2.left;else x1= m_rRec1.left;if(m_rRec1.top m_rRec2.top) y1= m_rRec2.top;else y1= m_rRec1.top;if(m_rRec1.right m_rRec2.right) x2= m_rRec1.right;else x2= m_rRec2.right;if(m_rRec1.bottomEllipse(x1,y1,x2,y2);运行结果: 运行结果分析: 绘出一个椭圆三、结论(写本次实验的收获) 本次试验熟悉了很多类的使用,使用了很多控制类,以及构造函数的使用,了解了编程的基本步骤,会编写基本的小程序!
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!