版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 可视化程序设计实验三 设计一个应用程序(圆) 学生: 学号: 指导老师:李家军 2015.4.25一、实验任务:窗口显示后在客户区显示有一个红色两象素宽线内部为黄色的圆,点击A或a键则圆会放大,点击S或s则圆会缩小,点击A/a一定次数后圆不能再放大,显示出一个对话框提示不能再大了,单击确定后对话框关闭, 点击S/s一定次数后圆不能再缩小,显示出一个对话框提示不能再小了,单击确定后对话框关闭. 要求窗口的标题栏显示你的学号和姓名,并将圆的面积显示在客户区的(100,20)以右的区域,格式为:圆的面积=(xxxx) 平方立米. 本实验要求必须采用API方式编程。二、步骤:1. 自主学习API方式
2、编程;2.确定相关变量,圆形面积,按键;3.用窗口类来创建对象,调用函数;4.在6.0环境下调试运行程序,并纠错;5.分析实验结果,作出相应总结。三、程序说明及程序流程图程序说明:窗口显示后在客户区显示有一个红色两象素宽线内部为黄色的圆,点击A或a键则圆会放大,点击S或s则圆会缩小,点击A/a 3次数后圆不能再放大,显示出一个对话框提示不能再大了,单击确定后对话框关闭, 点击S/s 3次数后圆不能再缩小,显示出一个对话框提示不能再小了,单击确定后对话框关闭. 要求窗口的标题栏显示你的学号和姓名,并将圆的面积显示在客户区的(100,20)以右的区域,格式为:圆的面积=(xxxx) 平
3、方立米. 四实验结果及截图:1实验程序运行结果:2按下按键a或A 图形变大3. 按下按键a 或A三次后 图形无法变大 弹出提示框4按下按键s或S 图形变小5. 按下按键s 或S三次后 图形无法变大 弹出提示框四源程序 #include<windows.h>#include<stdlib.h>#include<string.h>WNDCLASSEX wndclass;HWND hWnd;MSG msg;LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);void Draw(HDC hdc,int i);void
4、Text(HDC hdc,int i);int ii=0;int WINAPI WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) /主函数wndclass.cbSize=sizeof(WNDCLASSEX); /窗口类的大小wndclass.style=0; /窗口类型为默认类型wndclass.lpfnWndProc=WndProc; /窗口处理函数是WndProcwndclass.cbClsExtra=0; /窗口类无扩展句柄wndclass.cbWndExtra=0; /窗
5、口实例无扩展wndclass.hInstance=hInstance; /当前实例wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION); /窗口类的图标wndclass.hCursor=LoadCursor(NULL,IDC_ARROW); /窗口采用箭头光标wndclass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH); /窗口背景为白色wndclass.lpszMenuName=NULL; /窗口中无菜单wndclass.lpszClassName="窗口" /窗口类名为&qu
6、ot;窗口"wndclass.hIconSm=NULL; /窗口类的小图标if(!RegisterClassEx(&wndclass) /注册失败报警MessageBeep(0);return FALSE;hWnd=CreateWindow /创建窗口("窗口", /窗口类名 "何博 12020229", /窗口实例的标题名WS_OVERLAPPEDWINDOW, /窗口的风格CW_USEDEFAULT,CW_USEDEFAULT, /窗口左上角坐标 默认CW_USEDEFAULT,CW_USEDEFAULT, /窗口高和宽 默认0,
7、/无父窗口0, /无主菜单hInstance, /创建此窗口应用程序的当前句柄0 /不使用该值);ShowWindow(hWnd,nCmdShow); /显示窗口UpdateWindow(hWnd); /绘制用户区while(GetMessage(&msg,NULL,0,0)/消息循环TranslateMessage(&msg);DispatchMessage(&msg);return msg.wParam; /程序终止时将信息返回系统LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM
8、 lParam) /窗口函数代码HDC hdc; /定义指向设备的句柄PAINTSTRUCT ps; /定义指向包含绘图信息的结构体变量switch(message) case WM_CHAR: /按键响应if(wParam='A'|wParam='a') /A/a图形增大并显示面积hdc=GetDC(hwnd);ii+; Text(hdc,ii);Draw(hdc,ii);ReleaseDC(hwnd,hdc);if(wParam='S'|wParam='s') /S/s图形减小并显示面积hdc=GetDC(hwnd);ii-;
9、 Text(hdc,ii);Draw(hdc,ii);ReleaseDC(hwnd,hdc);break;case WM_PAINT: /处理覆盖的情况hdc=BeginPaint(hwnd,&ps); Text(hdc,ii);Draw(hdc,ii);EndPaint(hwnd,&ps);break;case WM_DESTROY: /发出WM_QUIT消息PostQuitMessage(0);break;default:return DefWindowProc(hwnd,message,wParam,lParam);return 0;void Draw(HDC hdc,i
10、nt i) /画图函数 HPEN hPen; /定义指向画笔的句柄HBRUSH hBrush; /定义指向画刷的句柄SetMapMode(hdc,MM_ANISOTROPIC); /设置映像模式 if(i>=-3&&i<=3)hPen=CreatePen(PS_SOLID,2,RGB(255,255,255); hBrush=CreateHatchBrush(HS_BDIAGONAL,RGB(255,255,255); /画刷SelectObject(hdc,hBrush); /选择画刷SelectObject(hdc,hPen); /选择画笔Ellipse(hdc
11、,0,0,1000,1000); /清屏hPen=CreatePen(PS_SOLID,2,RGB(255,0,0); hBrush=CreateHatchBrush(HS_BDIAGONAL,RGB(255,255,0); /画刷SelectObject(hdc,hBrush); /选择画刷SelectObject(hdc,hPen); /选择画笔Ellipse(hdc,200-20*i,200-20*i,400+20*i,400+20*i); /绘制圆else if(i<-3) ii=-3;hPen=CreatePen(PS_SOLID,2,RGB(255,255,255); hBr
12、ush=CreateHatchBrush(HS_BDIAGONAL,RGB(255,255,255); /画刷SelectObject(hdc,hBrush); /选择画刷SelectObject(hdc,hPen); /选择画笔Ellipse(hdc,0,0,1000,1000); /清屏MessageBox(hWnd,"不能再小了!","来自何博的提示",0);elseii=3;hPen=CreatePen(PS_SOLID,2,RGB(255,255,255); hBrush=CreateHatchBrush(HS_BDIAGONAL,RGB(25
13、5,255,255); /画刷SelectObject(hdc,hBrush); /选择画刷SelectObject(hdc,hPen); /选择画笔Ellipse(hdc,0,0,1000,1000); /清屏MessageBox(hWnd,"不能再大了!","来自何博的提示",0);void Text(HDC hdc,int i) /输出文本函数TEXTMETRIC tm;switch(i)case 0: SetTextColor(hdc,RGB(0,0,0); GetTextMetrics(hdc,&tm); TextOut(hdc,100
14、,20,"圆的面积=(31400)平方米",22);break;case 1:SetTextColor(hdc,RGB(0,0,0); GetTextMetrics(hdc,&tm); TextOut(hdc,100,20,"圆的面积=(45216)平方米",22);break;case 2:SetTextColor(hdc,RGB(0,0,0); GetTextMetrics(hdc,&tm); TextOut(hdc,100,20,"圆的面积=(61544)平方米",22);break;case 3:SetText
15、Color(hdc,RGB(0,0,0); GetTextMetrics(hdc,&tm); TextOut(hdc,100,20,"圆的面积=(80384)平方米",22);break;case -1:SetTextColor(hdc,RGB(0,0,0); GetTextMetrics(hdc,&tm); TextOut(hdc,100,20,"圆的面积=(20096)平方米",22);break;case -2:SetTextColor(hdc,RGB(0,0,0); GetTextMetrics(hdc,&tm); TextOut(hdc,100,20,"圆的面积=(11304)平方米",22);break;case
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025工厂承包合同书
- 2025无效的工程施工合同工程验收合格后谁担责 工程
- 2025借款合同(个人与单位)
- 教育资源在家庭影院中的整合实践
- 2024年外转子风机项目资金申请报告代可行性研究报告
- 科技驱动下的宏观经济变革与产业发展趋势
- 灾害性事件下的安全应急预案制定策略
- 公园物业服务投标方案(2023修订版)(技术方案)
- 太阳能电池技术创新与进展考核试卷
- 2025年沪科版八年级地理下册阶段测试试卷含答案
- 2025年温州市城发集团招聘笔试参考题库含答案解析
- 2025年中小学春节安全教育主题班会课件
- 2025版高考物理复习知识清单
- 除数是两位数的除法练习题(84道)
- 2025年度安全检查计划
- 2024年度工作总结与计划标准版本(2篇)
- 全球半导体测试探针行业市场研究报告2024
- 反走私课件完整版本
- 2024年注册计量师-一级注册计量师考试近5年真题附答案
- 临床见习教案COPD地诊疗教案
- 中考数学复习《平行四边形》专项练习题-附带有答案
评论
0/150
提交评论