《《可视化编程技术》实验报告[4].doc》由会员分享,可在线阅读,更多相关《《可视化编程技术》实验报告[4].doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机科学与工程学院 可视化编程技术实验报告 武 汉 工 程 大 学计算机科学与工程学院可视化编程技术实验报告4专业班级实验时间2011/12/26学生学号实验地点8#机房学生姓名指导教师实验名称MFC中资源的应用实验类别综合性实验学时4实验目的及要求1. 掌握MFC中菜单的创建、消息响应方法。2. 掌握MFC中右键快捷菜单的用法。3. 掌握MFC中工具条的添加、响应方法。4. 掌握MFC中图标资源的用法。5. 掌握MFC中对话框的用法。6. 掌握MFC中位图的用法。成 绩 评 定 表类 别评 分 标 准分值得分合 计上机表现按时出勤、遵守纪律认真完成各项实验内容30分报告质量程序代码规范、功
2、能正确填写内容完整、体现收获70分说明:能够认真按照实验流程进行编程,较完善的完成了实验内容;程序代码规范,功能正确,分析比较正确,体现了较高的分析和解决问题的能力。 评阅教师: 日 期: 年 月 日实 验 内 容1. 编写一个MFC程序,菜单要求有菜单项:形状,画笔颜色,画刷颜色。形状里面有5个菜单项,分别是圆形、矩形、圆角矩形、椭圆形和三角形。画笔颜色里面有30个菜单项,分别是不同的颜色。画刷颜色里面有3个菜单项,分别是红、绿、蓝。当点击不同的菜单项时,屏幕以不同的格式在屏幕中心输出形状。2.编写一个MFC程序,利用右键快捷方式,弹出5个菜单项,分别是圆形、矩形、圆角矩形、椭圆形和三角形。
3、单点击该项时,在屏幕中心用红色画笔和绿色刷填充并输出。3. 编写一个MFC程序,利用工具条方式,上面有5个菜单项,分别对应圆形、矩形、圆角矩形、椭圆形和三角形。单点击该项时,在屏幕中心用红色画笔和绿色刷填充并输出。4. 编写一个MFC程序,弹出1个对话框,输入1个数字,范围是1到5(分别对应圆形、矩形、圆角矩形、椭圆形和三角形)之间,确定以后在屏幕中心用红色画笔和绿色刷填充并输出。实 验 过 程(包括每道题的源代码,并将结果截图显示)1、private:UINT m_nDrawStyle;COLORREF m_bclr;COLORREF m_pclr;CPoint StrPoint3;publ
4、ic:afx_msg void OnRed();afx_msg void OnGreen();afx_msg void OnBlue();afx_msg void OnCircle();afx_msg void OnRect();afx_msg void OnEllipse();afx_msg void OnRoundrect();afx_msg void OnTriangle();afx_msg void On1();afx_msg void On10();afx_msg void On11();afx_msg void On12();afx_msg void On13();afx_msg
5、void On14();afx_msg void On15();afx_msg void On16();afx_msg void On17();afx_msg void On18();afx_msg void On19();afx_msg void On21();afx_msg void On2();afx_msg void On20();afx_msg void On22();afx_msg void On23();afx_msg void On24();afx_msg void On25();afx_msg void On26();afx_msg void On27();afx_msg v
6、oid On28();afx_msg void On29();afx_msg void On3();afx_msg void On30();afx_msg void On4();afx_msg void On5();afx_msg void On6();afx_msg void On7();afx_msg void On8();afx_msg void On9();CMy4_1View:CMy4_1View(): m_nDrawStyle(0)/ TODO: 在此?处鋦添?加构1造代洙?码?m_nDrawStyle=0; /给申明的变量赋值初始化m_pclr=(155,155,155);m_b
7、clr=NULL_BRUSH;StrPoint0.x=250;StrPoint0.y=250;StrPoint1.x=120;StrPoint1.y=120;StrPoint2.x=300;StrPoint2.y=75;void CMy4_1View:OnRed()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_bclr=RGB(255,0,0);InvalidateRect(NULL,1);void CMy4_1View:OnGreen()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_bclr=RGB(0,255,0);InvalidateRect(NULL,1);
8、void CMy4_1View:OnBlue()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_bclr=RGB(0,0,255);InvalidateRect(NULL,1);void CMy4_1View:OnCircle()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_nDrawStyle=1;InvalidateRect(NULL,1);void CMy4_1View:OnRect()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_nDrawStyle=2;InvalidateRect(NULL,1);void CMy4_1View:OnEllip
9、se()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_nDrawStyle=3;InvalidateRect(NULL,1);void CMy4_1View:OnRoundrect()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_nDrawStyle=4;InvalidateRect(NULL,1);void CMy4_1View:OnTriangle()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_nDrawStyle=5;InvalidateRect(NULL,1);void CMy4_1View:On1()/ TODO: 在此?添?加命令?处鋦理
10、?程序代洙?码?m_pclr=RGB(10,0,0);void CMy4_1View:On10()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(100,0,0);void CMy4_1View:On11()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(110,10,10);void CMy4_1View:On12()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(120,20,20);void CMy4_1View:On13()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RG
11、B(130,30,30);void CMy4_1View:On14()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(140,40,40);void CMy4_1View:On15()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(150,50,50);void CMy4_1View:On16()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(160,60,60);void CMy4_1View:On17()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(170,70,70)
12、;void CMy4_1View:On18()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(180,80,80);void CMy4_1View:On19()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(190,90,90);void CMy4_1View:On21()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(210,10,10);void CMy4_1View:On2()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(20,0,0);void CMy4_1View
13、:On20()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(200,0,0);void CMy4_1View:On22()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(220,20,20);void CMy4_1View:On23()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(230,30,30);void CMy4_1View:On24()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(240,40,40);void CMy4_1View:On25()/ TODO:
14、 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(250,50,50);void CMy4_1View:On26()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(255,65,65);void CMy4_1View:On27()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(255,75,75);void CMy4_1View:On28()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(255,85,85);void CMy4_1View:On29()/ TODO: 在此?添?加命令?处鋦
15、理?程序代洙?码?m_pclr=RGB(255,95,95);void CMy4_1View:On3()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(30,20,10);void CMy4_1View:On30()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(40,30,20);void CMy4_1View:On4()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(50,40,30);void CMy4_1View:On5()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RG
16、B(60,50,40);void CMy4_1View:On6()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(70,80,90);void CMy4_1View:On7()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(90,110,130);void CMy4_1View:On8()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(130,150,170);void CMy4_1View:On9()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_pclr=RGB(170,190,255);
17、void CMy4_1View:OnDraw(CDC* /*pDC*/)CMy4_1Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)return;/ TODO: 在此?处鋦为a本?机数簓据Y添?加绘?制?代洙?码?CClientDC dc(this);CPen pen(PS_SOLID,3,m_pclr);dc.SelectObject(&pen);CBrush *pBrush=CBrush:FromHandle(HBRUSH)CreateSolidBrush(m_bclr);dc.SelectObject(pBrush);swit
18、ch(m_nDrawStyle)case 1:dc.Ellipse(30,30,180,180);break;case 2:dc.Rectangle(50,50,200,280);break;case 3:dc.Ellipse(200,260,300,380);break;case 4:dc.RoundRect(100,100,280,360,50,50);break;case 5:dc.Polygon(StrPoint,3);break;2、public:afx_msg void OnCircle();afx_msg void OnRect();afx_msg void OnRoundrec
19、t();afx_msg void OnEllipse();afx_msg void OnTriangle();private:UINT m_nDrawStyle;CPoint StrPoint3;CMy4_2View:CMy4_2View(): m_nDrawStyle(0)/ TODO: 在此?处鋦添?加构1造代洙?码?m_nDrawStyle=0;StrPoint0.x=250;StrPoint0.y=250;StrPoint1.x=120;StrPoint1.y=120;StrPoint2.x=300;StrPoint2.y=75;void CMy4_2View:OnCircle()/
20、TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_nDrawStyle=1;InvalidateRect(NULL,1);void CMy4_2View:OnRect()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_nDrawStyle=2;InvalidateRect(NULL,1);void CMy4_2View:OnRoundrect()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_nDrawStyle=4;InvalidateRect(NULL,1);void CMy4_2View:OnEllipse()/ TODO: 在此?添?加命令?处鋦理?程序代
21、洙?码?m_nDrawStyle=3;InvalidateRect(NULL,1);void CMy4_2View:OnTriangle()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_nDrawStyle=5;InvalidateRect(NULL,1);void CMy4_2View:OnDraw(CDC* /*pDC*/)CMy4_2Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)return;/ TODO: 在此?处鋦为a本?机数簓据Y添?加绘?制?代洙?码?CClientDC dc(this);CPen pe
22、n(PS_SOLID,3,RGB(255,0,0);dc.SelectObject(&pen);CBrush *pBrush=CBrush:FromHandle(HBRUSH)CreateSolidBrush(RGB(0,255,0);dc.SelectObject(pBrush);switch(m_nDrawStyle)case 1:dc.Ellipse(30,30,180,180);break;case 2:dc.Rectangle(50,50,200,280);break;case 3:dc.Ellipse(200,260,300,380);break;case 4:dc.RoundRe
23、ct(100,100,280,360,50,50);break;case 5:dc.Polygon(StrPoint,3);break;3、public:afx_msg void OnCircle();afx_msg void OnRect();afx_msg void OnRoundrect();afx_msg void OnEllipse();afx_msg void OnTriangle();private:UINT m_nDrawStyle;CPoint StrPoint3;CMy4_2View:CMy4_2View(): m_nDrawStyle(0)/ TODO: 在此?处鋦添?加
24、构1造代洙?码?m_nDrawStyle=0;StrPoint0.x=250;StrPoint0.y=250;StrPoint1.x=120;StrPoint1.y=120;StrPoint2.x=300;StrPoint2.y=75;void CMy4_2View:OnCircle()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_nDrawStyle=1;InvalidateRect(NULL,1);void CMy4_2View:OnRect()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_nDrawStyle=2;InvalidateRect(NULL,1);
25、void CMy4_2View:OnRoundrect()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_nDrawStyle=4;InvalidateRect(NULL,1);void CMy4_2View:OnEllipse()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_nDrawStyle=3;InvalidateRect(NULL,1);void CMy4_2View:OnTriangle()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?m_nDrawStyle=5;InvalidateRect(NULL,1);void CMy4_2View:On
26、Draw(CDC* /*pDC*/)CMy4_2Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)return;/ TODO: 在此?处鋦为a本?机数簓据Y添?加绘?制?代洙?码?CClientDC dc(this);CPen pen(PS_SOLID,3,RGB(255,0,0);dc.SelectObject(&pen);CBrush *pBrush=CBrush:FromHandle(HBRUSH)CreateSolidBrush(RGB(0,255,0);dc.SelectObject(pBrush);switch(m_nDr
27、awStyle)case 1:dc.Ellipse(30,30,180,180);break;case 2:dc.Rectangle(50,50,200,280);break;case 3:dc.Ellipse(200,260,300,380);break;case 4:dc.RoundRect(100,100,280,360,50,50);break;case 5:dc.Polygon(StrPoint,3);break;4、CMy4_4View:CMy4_4View()/ TODO: 在此?处鋦添?加构1造代洙?码?m_nDrawStyle=0;StrPoint0.x=250;StrPoi
28、nt0.y=250;StrPoint1.x=120;StrPoint1.y=120;StrPoint2.x=300;StrPoint2.y=75;void CMy4_4View:OnDraw(CDC* /*pDC*/)CMy4_4Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)return;/ TODO: 在此?处鋦为a本?机数簓据Y添?加绘?制?代洙?码?CClientDC dc(this);CPen pen(PS_SOLID,3,RGB(255,0,0);dc.SelectObject(&pen);CBrush *pBrush=
29、CBrush:FromHandle(HBRUSH)CreateSolidBrush(RGB(0,255,0);dc.SelectObject(pBrush);switch(m_nDrawStyle)case 1:dc.Ellipse(30,30,180,180);break;case 2:dc.Rectangle(50,50,200,280);break;case 3:dc.Ellipse(200,260,300,380);break;case 4:dc.RoundRect(100,100,280,360,50,50);break;case 5:dc.Polygon(StrPoint,3);break;void CMy4_4View:OnChoose()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?CChooseDlg dlg;dlg.m_nDrawStyle=m_nDrawStyle;if(IDOK=dlg.DoModal()m_nDrawStyle=dlg.m_nDrawStyle;InvalidateRect(NULL,1);实 验 小 结(写出调试运行程序的分析和体会)MFC资源很好很强大=,相对于API代码的复杂,MFC给编程带来了方便,虽然刚开始学习的时候会有一点点觉得麻烦,但是熟悉后编程的轻松感是不可否认存在的第 20 页 共 20 页
限制150内