资源描述:
《《vc实验指导书》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验一WindowsGUI编程实验课程名:VC程序设计专业班级:12级计科(专升本)学号:22姓名:罗连欢实验时间:2013.3.27实验地点:K4-203指导教师:祁文青一、实验目的和要求掌握MFCAppWizard[exe]向导的使用、MFC消息映射及消息处理。二、实验内容任务1:编写一个单文档应用程序。程序启动后在用户区显示一个方形,当用鼠标左键单击用户区后,该方形会变为圆形,如果再单击则又变回方形。实验步骤:设置一个开关变量m_bKey当其值为FALSE时,在OnDraw函数中使用函数Rectangle绘制方形;
2、而当值为TRUE时使用函数Ellipse绘制圆形。再定义一个成员变量m_rectRec存储方形和圆形的尺寸。程序代码如下://在视图类声明中定义成员变量Private:BOOLm_bKey;CRectm_rectRec;//在视图类的构造函数中对成员变量进行初始化CRec_CrlView::CRec_CrlView():m_rectRec(100,100,400,400){//TODO:addconstructioncodeherem_bKey=FALSE;}//在视图类鼠标左键按下消息中添加如下代码voidCRec_C
3、rlView::OnLButtonDown(UINTnFlags,CPointpoint){if(m_bKey)m_bKey=FALSE;elsem_bKey=TRUE;InvalidateRect(m_rectRec);CView::OnLButtonDown(nFlags,point);}//在视图类的OnDraw函数中添加如下代码voidCRec_CrlView::OnDraw(CDC*pDC){CRec_CrlDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);if(m_bKey)
4、pDC->Ellipse(m_rectRec);elsepDC->Rectangle(m_rectRec);}运行结果:运行结果分析:圆方的变换任务2:编写一个应用程序,该程序运行后在用户区绘制一个圆形,每单击鼠标左键一次,则圆的颜色会变化一次。实验步骤:(1)在视图类声明中定义三个数据成员以描述颜色。intm_clr1,m_clr2,m_clr3;(2)在视图类的鼠标按下消息响应函数中用下面代码改变颜色。voidCColorView::OnLButtonDown(UINTnFlags,CPointpoint){m_cl
5、r1-=10;InvalidateRect(NULL);CView::OnLButtonDown(nFlags,point);}(3)在视图类的OnDraw函数中定义画刷和绘制圆形。VoidCColorView::OnDraw(CDC*pDC){intclr=RGB(m_clr1,m_clr2,m_clr3);CBrushnewBrush(clr);CBrush*oldBrush=pDC->SelectObject(&newBrush);pDC->Ellipse(20,20,220,220);pDC->SelectObj
6、ect(oldBrush);}运行结果:运行结果分析:点击鼠标,圆的颜色逐渐加深任务3:编写一个单文档界面应用程序,该程序可以测试在鼠标左键按下时鼠标光标的位置是否处在某规定的矩形框内,如果不在该矩形内则计算机的扬声器会发出“叮”的声音,反之则会在用户区显示光标的位置。实验步骤:(1)用MFCAppWizard创建一个名称为MusInRec的单文档应用程序框架。(2)在视图类的声明中定义一个CRect类的对象来描述矩形,再定义一个POINT结构来存储鼠标在按下时的位置,即在视图类的声明中添加如下代码。Public:POI
7、NTm_point;CRectm_rRct;(3)在视图类的构造函数中初始化数据成员:CMusInRecView::CMusInRecView():m_rRct(50,50,250,200){m_point.x=0;m_point.y=0;}(4)在视图类的OnDraw函数中写入如下代码。voidCMusInRecView::OnDraw(CDC*pDC){CmusInRecDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);//TODO:adddrawcodefornativedatah
8、ereChars[20];wsprintf(s,”X=%dY=%d”,m_point.x,m_point.y);pDC->TextOut(5,5,s);}(5)在视图类的鼠标左键按下消息响应函数OnLButtonDown中写入如下代码。VoidCmusInRecView::OnLButtonDown(UINTnFla