




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
集美大学计算机工程学院实验报告课程名称:TCP/IP协议及程序设计班级:实验成绩:实验项目名称:Windows API窗口矩形绘制程序设计学号:上机实践日期:2016-04-14实验项目编号:04组号:1上机实践时间: 2学时一、 实验目的熟悉Windows程序的运行脉络,掌握运用Win32 API技术进行编程的方法。二、实验内容与设计思想设计一个简单的Win32程序,该程序窗口内正上方居中显示“Windows API绘制矩形程序演示”字样,在程序窗口内任意位置A按下鼠标左键、并拖动鼠标到任意位置B松开,可以AB为主对角线绘制矩形。并且用红色填充该矩形。三、实验使用环境操作系统: Microsoft Windows XP SP2编程环境: Visual C+ 6.0中文企业版四、实验步骤和调试过程详细给出源码以及实现的效果图,并配有代码解释#include #include static POINT pt_star,pt_end;LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) 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_APPLICATION) ; 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!), 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_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 (&msg) ; 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(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_star.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 (hwnd, &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 ; return 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国家开放大学《人类发展与环境保护》形成性考核123答案+终结性考试答
- 合理化建议培训
- 【8地 会考】2022-2024年安徽省初中(八年级)中考初二会考地理试卷(3年真题)
- 智慧农业系统创业计划书
- 小学入学备案合同协议
- 小区物业管理计划书:范文
- 泉州市石狮市2024-2025学年六年级下学期小升初数学考前押题卷含解析
- 水电工程验收单
- 户外广告安全
- 2025年广东省高中历史学业水平考试综合测评(一)历史试题(原卷版+解析版)
评论
0/150
提交评论