实验四,MFC,图形绘制编程实验

实验四 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 LRESULT CALLBACK WndProc(HWND hwnd,UINT messgae, WPARAM wparam,LPARAM lparam); int WINAPI WinMain (HINSTANCE hThisInst,HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow) { WNDCLASS ws; HWND hWnd; MSG msg; ws.style=0; ws.lpfnWndProc=WndProc; ws.cbClsExtra =0; ws.cbWndExtra=0; ws.hInstance =hThisInst; ws.hIcon =LoadIcon(NULL,IDI_HAND); ws.hCursor =LoadCursor(NULL,IDC_CROSS); ws.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH); ws.lpszMenuName =NULL; ws.lpszClassName ="DemoClass"; if(!RegisterClass(&ws)) { return -1; } hWnd=CreateWindow("DemoClass","windows 绘图编程 ", WS_OVERLAPPEDWINDOW,100,200,640,480,NULL,NULL,hThisInst,NULL); ShowWindow(hWnd,nCmdShow); UpdateWindow(hWnd);

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控制实验实验报告

推荐访问:实验 绘制 图形 编程 MFC