燕山大学-windows-程序设计-实验报告.docx

燕山大学-windows-程序设计-实验报告.docx

ID:54945804

大小:154.81 KB

页数:16页

时间:2020-04-24

燕山大学-windows-程序设计-实验报告.docx_第1页
燕山大学-windows-程序设计-实验报告.docx_第2页
燕山大学-windows-程序设计-实验报告.docx_第3页
燕山大学-windows-程序设计-实验报告.docx_第4页
燕山大学-windows-程序设计-实验报告.docx_第5页
资源描述:

《燕山大学-windows-程序设计-实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Windows程序设计——基于WindowsAPI的简单绘图软件目录1.概述22.工作区窗口52.1hWorkWnd窗口的产生52.2结构体定义52.3文件中函数定义52.4图形的绘制63.工具条的实现93.1资源编辑93.2工具条窗口的产生93.3工具栏按钮效果的实现93.4消息传递114.调色板的创建124.1窗口产生124.2调色功能实现124.2消息处理135.保存与打开功能的实现145.1保存与打开窗口145.2保存功能145.3打开功能156.总结16161.概述1.1工程简介及窗口框架项目

2、中一共建立了四个窗口,其中类名为szWindowClass的窗口是父窗口,工作区窗口(szWorkClass)、工具栏(szToolbarClass)以及调色板(szColorbarClass)是子窗口。工作区窗口主要实现基本的绘图功能,工具栏和调色板分别实现绘图工具和颜色的选择功能。另外,为了方便消息的传递,将工作区窗口的句柄hWorkWnd设为全局变量。项目中MyDrawProj.cpp文件实现主窗口框架的产生及消息处理,function.h和function.cpp实现基本图形的绘制功能,tool

3、bar.h和toolbar.cpp完成工具栏的产生和消息处理,color.h和color.cpp实现调色板功能和消息处理。最后file.h和file.cpp完成图像的保存和打开功能主界面截图:1.2GDI(GraphicDeviceInterface)绘图概述图形设备接口(GDI)处理来自windows应用程序的图形函数调用,然后把这些调用传递给合适的设备驱动程序,由设备驱动程序来执行与硬件相关的函数,并产生最后的输出结果。设备描述表(DC)是一种windows数据结构,它包含了与一个设备(如显示器)的

4、绘制属性的相关信息。所有的绘制操作通过一个设备上下文对象进行,该对象封装了实现绘制线条,矩形,椭圆等图形windowsAPI函数。设备上下文可以用来向屏幕,打印机和图元件输入结果。161.3实现绘图的基本原理实验中通过对API函数的调用实现基本图形的绘制,由于窗口大小发生改变或者客户区无效时发生重绘,故采用双缓冲技术绘图,即在内存中创建一个与屏幕绘图区域一致的对象,先将图形绘制到内存中的这个对象上,再一次性将这个对象上的图形拷贝到屏幕上,这样在保持绘图的同时还可以避免闪烁。工具栏和调色板的选择可通过Se

5、ndMessage函数将用户的选择传到工作区窗口处理,从而画出不同颜色的不同图形。通过对添加bmp文件头将画布保存为bmp图像实现文件的保存功能,通过把打开的bmp图像拷贝到当前工作区实现打开功能,使用OPENFILENAME结构弹出打开和保存对话框。使用一个比当前工作区大以及背景颜色一样的矩形填充当前工作区,实现对图像的清除功能。1.4相关的基本数据类型和函数1.显示窗口的步骤1.注册窗口类typedefstructWNDCLASSEX{  UINTcbSize;//结构的大小  UINTstyle;

6、//窗口风格  WNDPROClpfnWndProc;//窗口函数指针,指向消息处理函数  intcbClsExtra;  intcbWndExtra;  HINSTANCEhInstance;//实例句柄  HICONhIcon;//图标  HCURSORhCursor;//光标  HBRUSHhbrBackground;//背景画刷  LPCTSTRlpszMenuName;//菜单  LPCTSTRlpszClassName;//窗口类名称  HICONhIconSm;//窗口图标  }WNDCL

7、ASSEX,*PWNDCLASSEX;2.创建窗口HWNDCreateWindow(  LPCTSTRlpClassName,//窗口类名  LPCTSTRlpWindowName,//窗口标题  DWORDdwStyle,//指定创建窗口的风格  intx,//指定窗口的初始水平位置  inty,//指定窗口的初始垂直位置  intnWidth,//窗口的宽度  intnHeight,//窗口的高度  HWNDhWndParent,//窗口的父窗口  HMENUhMenu,//菜单句柄16  HAND

8、LEhlnstance,//与窗口相关联的模块实例的句柄  LPVOIDlpParam);3.显示窗口ShowWindow(HWNDhWnd,intnCmdShow);hWnd指窗口句柄,nCmdShow指定窗口如何显示,可取SW_HIDE、SW_SHOW等。4.更新客户区 UpdateWindow(HWNDhWnd);5.进入消息循环WM_CREATE、WM_PAINT、WM_SIZE等消息的处理2.菜单、图标和位图菜单LoadMenu(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。