实验四 MFC 图形绘制编程实验 《Visual C++ 语言》 学 校 中国石油大学(华东) 学 院 信息与控制工程学院 专业班级 电气 12-* 班 姓 名 *** 学 号 12****** 信息与控制工程学院自动化系 2014 年 9 月
一、实验目的 (1) 熟悉Visual Studio 开发环境;
(2) 掌握MFC 消息映射的操作步骤; (3) 掌握MFC 图形输出的方法;
(4) 理解设备环境、画笔、画刷的概念,掌握常用的绘图函数。
二、实验内容 请编写程序,要求如下:
(1) 定义一支黄色画笔,绘制一条线段;
(1) 定义一支紫色画笔,绘制一条多段线;
(3) 定义一支红色画笔,绘制一个正方形,并用适当的画刷填充图形内部;
(4) 定义一支绿色画笔,绘制一个圆,并用适当的画刷填充图形内部;
(5) 定义一支蓝色画笔,绘制一个正六边形,并用适当的画刷填充图形内部。
三 、实验结果 (1)程序代码清单 #include"windows.h" #include
while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam ; } LRESULT CALLBACK WndProc(HWND hwnd ,UINT messgae, WPARAM wParam,LPARAM lParam) { HDC hDC; HBRUSH hBr; PAINTSTRUCT PtStr; HPEN hPen; double add=sqrt(3); POINT pt1[]={{100,50},{200,100},{300,50}}; POINT pt2[]={{100,250},{150,250},{175,250+25*add},{150,250+50*add},{100,250+50*add},{75,250+25*add}}; switch (messgae) { case WM_PAINT: hDC=BeginPaint(hwnd,&PtStr); SetMapMode(hDC,MM_ANISOTROPIC); hPen=CreatePen(PS_SOLID,2,RGB(0,0,0)); //此为绘制直线代码 SelectObject(hDC,hPen); MoveToEx(hDC,40,40,NULL); LineTo(hDC,80,80); hPen=CreatePen(PS_SOLID,2,RGB(0,255,255)); //此为绘制多段线代码 SelectObject(hDC,hPen); Polyline(hDC,pt1,3); hBr=CreateSolidBrush(RGB(0,255,255)); //此为绘制矩形代码 SelectObject(hDC,hBr); hPen=CreatePen(PS_SOLID,1,RGB(255,0,0)); SelectObject(hDC,hPen); Rectangle(hDC,350,50,550,300); hBr=CreateSolidBrush(RGB(255,0,0)); //此为绘制椭圆代码
SelectObject(hDC,hBr); hPen=CreatePen(PS_SOLID,1,RGB(0,255,0)); SelectObject(hDC,hPen); Ellipse(hDC,250,350,200,200); hBr=CreateSolidBrush(RGB(0,0,255)); //此为绘制多边形代码 SelectObject(hDC,hBr); hPen=CreatePen(PS_SOLID,1,RGB(0,0,255)); SelectObject(hDC,hPen); Polygon(hDC,pt2,6); EndPaint(hwnd,&PtStr); break; case WM_DESTROY: PostQuitMessage(0); return 0; default: return DefWindowProc(hwnd,messgae ,wParam,lParam); } return 0; } 绘图效果:
图形学实验三
计算机图形学实验报告实验一
实验四-五(实验报告)
编号14:实验一(实验报告)
GPIO控制实验实验报告