版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、集美大学计算机工程学院实验报告课程名称:TCP/IP协议及程序设计班级:实验成绩:实验项目名称:Windows API窗口矩形绘制程序设计学号:上机实践日期:2016-04-14实验项目编号:04组号:1上机实践时间: 2学时一、 实验目的熟悉Windows程序的运行脉络,掌握运用Win32 API技术进行编程的方法。二、实验内容与设计思想设计一个简单的Win32程序,该程序窗口内正上方居中显示“Windows API绘制矩形程序演示”字样,在程序窗口内任意位置A按下鼠标左键、并拖动鼠标到任意位置B松开,可以AB为主对角线绘制矩形。并且用红色填充该矩形。三、实验使用环境操作系统: Micros
2、oft Windows XP SP2编程环境: Visual C+ 6.0中文企业版四、实验步骤和调试过程详细给出源码以及实现的效果图,并配有代码解释#include <windows.h>#include <stdio.h>static POINT pt_star,pt_end;LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdSh
3、ow) static TCHAR szAppName = TEXT ("HelloWin") ; HWND hwnd ; MSG msg ; WNDCLASS wndclass ; wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.lpfnWndProc = WndProc ; wndclass.cbClsExtra = 0 ; wndclass.cbWndExtra = 0 ; wndclass.hInstance = hInstance ; wndclass.hIcon = LoadIcon (NULL, IDI_A
4、PPLICATION) ; wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; wndclass.lpszMenuName = NULL ; wndclass.lpszClassName = szAppName ; if (!RegisterClass (&wndclass) MessageBox (NULL, TEXT ("This program requires Windows NT!"
5、;), szAppName, MB_ICONERROR) ; return 0 ; hwnd = CreateWindow (szAppName, / window class name TEXT ("3062,3076,3080,3083,43073"), / window caption WS_OVERLAPPEDWINDOW , / window style CW_USEDEFAULT, / initial x position CW_USEDEFAULT, / initial y position CW_USEDEFAULT, / initial x size CW
6、_USEDEFAULT, / initial y size NULL, / parent window handle NULL, / window menu handle hInstance, / program instance handle NULL) ; / creation parameters ShowWindow (hwnd, iCmdShow) ; UpdateWindow (hwnd) ; while (GetMessage (&msg, NULL, 0, 0) TranslateMessage (&msg) ; DispatchMessage (&ms
7、g) ; return msg.wParam ;LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) HDChdc ; PAINTSTRUCTps ;static boolbJude = false;TCHAR szBuffer = ""RECT rect ; switch (message) case WM_LBUTTONDOWN:pt_end.x = pt_star.x = LOWORD(lParam);pt_end.y = pt_star.y = HIWORD(
8、lParam);/获得按下坐标;掩盖掉第一次按下时鼠标移动bJude = true;return 0;case WM_MOUSEMOVE: if(bJude)hdc = GetDC(hwnd);SelectObject(hdc,GetStockObject(NULL_BRUSH);SetROP2(hdc,R2_NOT);/防止重影Rectangle(hdc,pt_star.x,pt_star.y,pt_end.x,pt_end.y);pt_end.x = LOWORD(lParam);pt_end.y = HIWORD(lParam);Rectangle(hdc,pt_star.x,pt_st
9、ar.y,pt_end.x,pt_end.y);ReleaseDC(hwnd,hdc);return 0;case WM_LBUTTONUP:bJude = false;pt_end.x = LOWORD(lParam);pt_end.y = HIWORD(lParam);InvalidateRect(hwnd,NULL,true);return 0;case WM_PAINT:hdc = BeginPaint(hwnd , &ps);SetCursor (LoadCursor (NULL, IDC_WAIT) ; ShowCursor (TRUE) ;GetClientRect (h
10、wnd, &rect) ;DrawText (hdc, TEXT ("Windows API画线程序演示"), -1, &rect, DT_SINGLELINE | DT_CENTER) ;SelectObject(hdc,CreateSolidBrush(RGB(255,0,0);Rectangle(hdc,pt_star.x,pt_star.y,pt_end.x,pt_end.y);EndPaint(hwnd,&ps);return 0; case WM_DESTROY: PostQuitMessage (0) ; return 0 ; retu
11、rn DefWindowProc (hwnd, message, wParam, lParam) ; 图(1) 图(2)五、实验小结 图(3)在防重影这一块,如果没有执行这一块代码,会导致画图过程中没有图(1)的框的效果;直接出现图2的效果;本次实验过程基于实验3之上,做实验的过程中由于有上次实验的经验以及代码,编写代码的过程较快,这次实验主要是一个自制画刷的过程较为深刻,小组成员讨论较久,小组成员也深刻的体会到了SelectObject(hdc,CreateSolidBrush(RGB(255,0,0);这一语法的应用,以及在选取brush和pen的过程体会较深。case WM_PAINT:hdc = BeginPaint(hwnd , &ps);SelectObject(hdc,GetStockObject(BLACK_BRUSH);Rectangle(hdc,pt_star.x,pt_star.y,pt_end.x,pt_end.y);EndPaint(hwnd,&ps);return 0;这块代码是从网上找的实例,刚开始,小组成员以为会有RED_BRUSH这类语法,后来程序执行不了,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业生产管理与效率提升(标准版)
- 公共交通运营统计分析制度
- 公共交通车辆购置管理制度
- 南充市营山县2025年下半年公开考核招聘事业单位工作人员备考题库及一套完整答案详解
- 2026年重庆大学电气工程学院量子智能传感器团队劳务派遣工程技术人员招聘备考题库完整答案详解
- 养老院投诉处理与改进制度
- 2026年遵义市市直事业单位公开选调备考题库及一套答案详解
- 2026年聊城幼儿师范学校第二批公开招聘工作人员9人备考题库及1套完整答案详解
- 2026年梧州市长洲区荣祥投资有限公司招聘备考题库及参考答案详解
- 2026年韶关市大宝山资源综合利用有限公司招聘备考题库参考答案详解
- 保密资格标准认定办法试题2017-含答案
- 2022年天津市津南创腾经济开发有限公司招聘笔试试题及答案解析
- “双减”背景下小学数学减负提质的策略优秀获奖科研论文
- 金属非金属露天矿山安全生产责任制(含安全手册)
- 国家开放大学电大《外国文学专题(本)》期末题库及答案
- 电力设计收费标准
- 陕西省工程建设监理统一表格(参考模板)
- [珠海]跨海大桥主体工程桥梁工程特点及设计技术创新(144页)
- 应力释放孔施工方案
- 各品牌挖掘机挖斗斗轴、马拉头尺寸数据
- 仓储(仓库)危险源及风险辨识与评价表
评论
0/150
提交评论