- 1、本文档共63页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
windows编程技术第7章图形程序的编程基础
第7章 图形程序的编程基础 Windows GDI的基本概念和原理 Windows GDI及图形设备接口,是Windows系统的重要组成部分,是Windows系统实现图形界面的基础。 设备无关性是如何实现的呢?从过程来说,在Windows 2000中,有以动态链接库GDI32.DLL,主要负责图形环境下图形的输出。 GDI 绘图函数 从程序员的角度看,GDI提供了几百个函数调用和一些相关的结构、宏和数据类型,便于程序员对显示器、打印机等硬件设备进行图输出 设备描述表;程序有绘图请求时被创建并得以维持,他负责为程序准备相关的信息,起到为程序屏蔽具体物理设备的作用。当程序希望获得具体物理设备信息时,可以通过一些GDI函数来获得。 设备描述表 p104 什么是设备描述表(device context,DC) 在Windows环境下,所有输出都要通过GDI函数。 在Windows系统中为每一个设备建立一个数据结构,这个结构记录了设备输出时的详细要求,如文字,画刷等对象,这个数据结构称为设备描述表,即DC。这种把设备抽象成为DC,是实现设备无关性的关键,也就是只要对DC作输出操作,Windows自动把DC中的内容转换和输出到实际的输出设备上(屏幕或打印机等) 通过BeginPaint函数可获得DC,对应的EndPaint函数可释放DC 通过GetDC函数可获得DC,对应的ReleaseDC函数可释放DC 7.1.1 GDI函数及其分类 取得和释放设备描述表代号的函数 GetDC, ReleaseDC; BeginPaint,EndPaint; 取得字体尺寸信息的函数 GetTextMetrics 绘图函数 TextOut 设定和取得设备描述表中有关属性的函数 SetTextColor,SetTextAlign, 使用GDI对象的函数 GDI绘图函数 GDI函数简介 1 获取和释放设备描述表的函数 GetDC ReleaseDC BeginPaint EndPaint 2 获得设备描述表信息的函数 GetTextMetric GetDeviceCaps 3 使用GDI对象的函数 六种可创建的GDI对象: 画笔、画刷、位图、字体、区域、调色板 4 设置和获取设备描述表属性的函数 映射方式,背景色,前景色,绘图模式 5 GDI绘图函数 7.1.2 GDI绘制的基本图形 直线和曲线 直线、矩形、椭圆、弧、Bezier曲线,折线 填入区域 当使用了封闭的曲线绘图后,GDI将用画刷填充该区域 点阵图 GDI支持“与设备有关位图”和“与设备无关位图” GDI提供两种位图之间的转换 设备描述表中则采用“与设备有关的位图” 7.1.3 GDI提供的其他功能 映射模式和变换 √ Metafile(它是GDI命令的集合,主要用于通过剪贴板传输向量图形) 绘图区域√ 路径 裁剪 调色盘(板) 打印 7.2.2 取得设备描述表中信息的方法 iValue = GetDeviceCaps(hdc,iIndex); 其中iIndex为预先定义的整数常量;iValue为返回的对应的数值信息 7.2.3 关于CS_OWNDC设备描述表 未使用CS_OWNDC属性 case WM_PAINT hdc = BeginPaint(hwnd,ps); 改变设备描述表的某些属性 ........... EndPaint(hwnd,ps); return; 7.2.3 关于CS_OWNDC设备描述表 使用CS_OWNDC属性(不提倡) 在窗口类的使用中加入CS_OWNDC wndclass.style = CS_HREDRAW|CS_OWNDC; 在窗口创建后的WM_CREATE中加入 case WM_CREATE: hdc = GetDC(hwnd); ReleaseDC(hwnd,hdc); return; 7.2.7 色彩 在图形界面环境中,色彩是很重要的一部分内容。有了色彩,应用程序才能更加生动地表达自己的设计思想,更容易与用户交流,用事业是应用程序更加直观。 色度学理论认为,任何颜色都可以由红、绿、蓝三种基本颜色按不同的比例混合得到,例如:黄色可以由红、绿各一半混合而成。因此,红、绿、蓝被称为三原色,简称RGB三原色。 颜色的表示和设置 Windows采用32位无符号长整数表示色彩,COLORREF值, COLORREF RGB(BYTE byRed,BYTE byGreen,BYTE byBlue); 另外,有三个宏可以获取一个COLORREF值中包含的红、绿、蓝分量值。 BYTE GetRValue(DWORD rgb)
文档评论(0)