资源描述:
《vc++风车程序实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、本科学生设计性实验报告项目组长学号成员专业班级实验项目名称指导教师及职称开课学期至学年学期上课时间年月口一、实验设计方案实验名称:实验时间:2013.12.18小组合作:是・否O1、实验目的:在窗口画一个旋转的风车,风车屮有三个叶片,颜色分别为红、黄和蓝,叶片外侧有一个外接圆。要求在程序中能够控制叶片的运转与停止,当开始运转时,速度由0逐渐变到最高速度,当停止时,由最髙速度变为0。2、实验场地及仪器、设备和材料:3、实验思路(实验内容、数据处理方法及实验步骤等):实验内容:编一个程序,在窗口中绘制一个风车,风
2、车叶片分红蓝绿三种颜色,并且外侧有一个外接圆,在程序中能够控制叶片的运动和停止,当左击鼠标时开始运转,且速度由0逐渐变成最高速度;当右击鼠标时,风车停止转动且由最髙速度逐渐变为0。实验步骤:〃为整个程序添加头文件,并定义兀的值include#includeinclude#include#definePi3.1415926〃对消息处理函数进行声明.longW1NAPIWndProc(HWNDhWnd,UINTiMessage,UINT
3、wParam,LONG1Param);intnNum=0,nMaxNum=20;//nMaxNum记录了叶片循环一周中绘图的次数.//nNum记录了当前的序数.doubletime0=81;boolflag=0;intWINAPIWinMain(HINSTANCEhlnstance,HINSTANCEhPrevInstance,LPSTRIpCmdLine,intnCmdShow)〃主函数MSGMessage;HWNDhWnd;〃定义消息变量.〃定义窗口句柄.WNDCLASSWndClass;WndClass
4、.cbClsExtra=O;WndClass.cbWndExtra=O;〃定义窗口类.〃无窗口类扩展.〃无窗口实例扩展.WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));//背景为白色.WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);〃窗口采用箭头光标.WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);〃采用缺省图标.WndClass.hInstance=h
5、Instance;WndClass.lpfnWndProc=WndProc;WndClass.lpszClassName="2H;WndClass.lpszMenuName=NULL;WndClass.style=O;〃当前应用程序句柄.〃窗口处理函数.//窗口类名称.〃无窗口菜单.〃窗口类型为缺省类型.if(!RegisterClass(&WndClass)){MessageBeep(O);returnFALSE;〃注册窗口・hWnd=CreateWindow("2",“2“,WS_OVERLAPPEDWI
6、NDOW,CW_USEDEFAULT,0,600,450,NULL,NULL,hlnstance,NULL);ShowWindow(hWnd,nCmdShow);UpdateWindow(hWnd);〃窗口类名.〃标题名.〃带标题栏,最大和最小按钮的窗口.〃窗口左上角坐标.〃采用宽度为450,高度为600.〃无父窗口.〃无主菜单.〃当前实例句柄.〃于要此参数.//显不窗口.〃更新并绘制用户区.while(GetMessage(&Message,0,0,0)){TranslateMessage(&Message
7、);DispatchMessage(&Message);}returnMessage.wParam;}〃消息循坏.longWINAPIWndProc(HWNDhWnd,UINTiMessage,UINTwParam,LONG1Param)〃消息处理函数.HDChDC;HBRUSHhBrush;HPENhPen;PAINTSTRUCTPlStr;intnCentreX,nCentreY;〃定义设备环境句柄.〃定义画刷句柄〃定义画笔句柄〃定义包含绘图信息的结构体变量〃定义3个叶片的圆心的坐标.doublefAng
8、le;//叶片的直边与水平轴的夹角switch(iMessage){caseWM_PAINT:〃处理绘图消息.hDC=BeginPaint(hWnd,&PtStr);〃获得设备坏境指针.SetMapMode(hDC,MM_ANISOTROPIC);〃设置映射模式.SetWindowExtEx(hDC,400,300,NULL);〃设置窗口区域.逻辑单位.SetViewportExtEx(hDC,60