




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一 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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年社会工作者职业水平考试初级综合能力试卷及答案
- 2025保安员考试试题预测试卷及完整答案详解(名师系列)
- 2025年北京教育科学研究院公开招聘笔试备考题库及答案详解1套
- 2025年甘肃省武威市民勤县西渠镇人民政府选聘专业化管理村文书笔试参考题库及完整答案详解一套
- 2025执法资格考前冲刺练习试题附完整答案详解【夺冠系列】
- 2025年广西河池市罗城仫佬族自治县农业农村局关于招募特聘农技员考前自测高频考点模拟试题及一套答案详解
- 2025年银行岗位模拟试题【综合题】附答案详解
- 四川省广安市2024-2025学年高一下学期期末考试政治试卷(含解析)
- 难点详解自考专业(小学教育)真题A4版附答案
- 2024年贵州水利水电职业技术学院单招《英语》模拟试题附答案详解【满分必刷】
- 市政工程施工技术课件
- 油井土地复垦方案(3篇)
- GB/T 2820.5-2025往复式内燃机驱动的交流发电机组第5部分:发电机组
- 中医康复理疗管理制度
- 2025至2030年中国热泵控制器行业市场竞争现状及投资战略研判报告
- 浅蓝色简约风工作总结
- 2025年新高考1卷(新课标Ⅰ卷)语文试卷
- 失眠中医养生课件
- 2025年自学考试《00504艺术概论》考试复习题库(含答案)
- T/CHES 98-2023取水口设施标准化建设与管理技术规程
- 平安医院建设试题及答案
评论
0/150
提交评论