



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
此文档收集于网络,如有侵权,请联系网站删除实验一 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_r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国土地整治项目创业计划书
- 中国核桃种植及深加工项目创业计划书
- 中国家庭信息终端项目创业计划书
- 中国鸡项目创业计划书
- 中国散射通信机项目创业计划书
- 中国精酿啤酒设备项目创业计划书
- 中国计算机设备租赁项目创业计划书
- 中国观赏鱼饲料项目创业计划书
- 中国尿液诊断项目创业计划书
- 中国奶牛场项目创业计划书
- 第10课 养成遵纪守法好习惯
- 人教版英语七年级下册跨学科融合计划
- 砖厂安全生产管理制度
- 医院设备采购预算编制要点
- 汽车尾气治理技术
- 新教师科研能力提升措施
- 《现代农业生物技术育种方法》课件
- 企业慈善捐赠指引
- 部编版四年级道德与法治上册第8课《网络新世界》
- 房地产开发项目风险评估报告
- 2025年广东中考物理学科模拟试卷(广东专属)
评论
0/150
提交评论