windows的图形设备接口和windows绘图.ppt

windows的图形设备接口和windows绘图.ppt

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
windows的图形设备接口和windows绘图

第3讲 Windows的图形设备接口及windows绘图;1. GDI的一些基本概念 设备描述表即为设备环境的属性的集合;应用程序;2.图形刷新;(2) 系统对刷新请求的响应 当用户区的内容需要刷新时,系统向应用程序消息队列发送WM_PAINT消息,系统在应用程序的消息队列中加入该消息,以通知窗口函数执行刷新处理;窗口被另一个窗口覆盖的区域称为无效区域。 Windows系统为每个窗口建立了一个PAINTSTRUCT结构,该结构中包含了包围无效区域的一个最小矩形的结构RECT,应用程序可以根据这个无效矩形执行刷新操作。 ;常用的windows应用程序刷新窗口的方法;3. 获取设备环境的方法;(2) 调用GetDC函数 如果绘图工作并非由WM_PAINT消息驱动,则调用GetDC函数获取设备环境。 hdc=GetDC(hwnd); ;4. 映像模式 映像模式定义了将逻辑单位转化为设备的度量单位以及设备的x方向和y方向,程序员可在一个统一的逻辑坐标系中操作而不必考虑输出设备的坐标系情况;缺省的映射模式; 应用程序可获取设备环境的当前映像模式,并根据需要设置映像模式。;窗口区域的定义由SetWindowExtEx函数完成,其函数原型形为:BOOL SetWindowExtEx ( HDC hdc, int nHeight,nWidth, //以逻辑单位表示的窗口区域高宽度 LPSIZE lpSize, //函数调用前窗口区域尺寸的SIZE结构地址 );;视口的缺省原点和窗口的缺省原点均为(0,0)。可通过调用函数SetViewportOrgEx和SetWindowOrgEx设定窗口与视口的原点。 SetWindowOrgEx函数的原形为: BOOL SetWindowOrgEx ( HDC hdc, int X,Y, //以逻辑单位表示的窗口原点坐标 LPPOINT lpPoint //函数调用前原点坐标的POINT结构的地址 );;二、绘图工具与颜色;(2) 创建新画笔,形式如下: hPen=CreatePen ( int nPenStyle, //确定画笔样式 int nWidth, //画笔宽度 COLORREF rgbColor //画笔颜色 );;2. 画刷 画刷的创建与应用与画笔很相似,操作画刷也包括创建、选入设备环境和删除。 (1) 画刷的创建 使用画刷需事先定义一个画刷句柄。形式如下: HBRUSH hBr; //hBr为画刷句柄 然后调用函数GetStockObject获取Windows系统提供的7种画刷 hBr=(HBRUSH)GetStockObject(nBrushStyle)画刷样式;可调用函???CreateSolidBrush和CreateHatchBrush创建画刷, hBr=CreateSolidBrush(rgbColor); ;3. 颜色;三、 常用绘图函数;4. 绘制椭圆弧线的函数Arc, BOOL Arc ( HDC hdc, int X1,intY1, //边框矩形左上角的逻辑坐标 int X2,int Y2, //边框矩形右下角的逻辑坐标 int X3,int Y3, //椭圆弧起始点坐标 int X4,int Y4 //椭圆弧终止点坐标 ) ;5. 绘制饼图,并用当前画刷进行填充 BOOL Pie ( HDC hdc, int X1,intY1, //边框矩形左上角的逻辑坐标 int X2,int Y2, //边框矩形右下角的逻辑坐标 int X3,int Y3, //椭圆弧起始经线的确定点坐标 int X4,int Y4 //椭圆弧终止经线的确定点坐标 );6. 绘制矩形,并用当前画刷进行填充 BOOL Rectangle(HDC hdc,int X1,int Y1,int X2,int Y2);四、 应用实例 【例4-1】利用绘图函数创建填充区。共有三个填充图形,第一个是用深灰色画刷填充带圆角的矩形,第二个是采用亮灰色画刷填充一个椭圆型图,第三个是用虚画刷填充饼形图。;BOOL InitWindowsClass(HINSTANCE hInstance); BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);;long WINAPI WndProc(HWND hWnd,UINT iMessage, UINT wParam,LONG lParam) { HDC hDC; //定义指向设备的句柄 HBRUSH

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档