- 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)
您可能关注的文档
- The Pricing of Bull and Bear Floating Rate Notes∶ An Application .ppt
- TJ22工程定位测量、放线验收记录.doc
- TMT行业培训.ppt
- TJ4315一般抹灰检验批质量验收记录.doc
- TOC限制理论精髓.ppt
- TM Blackboard教育软件系列.ppt
- TP-LINK_841N_300M无线路由器设置.doc
- TP12 指导学习:人机猜拳 ACCP 60 S1-1-使用Java理解程序逻辑 课件.ppt
- TP15 字符串 ACCP 60 S1-1-使用Java理解程序逻辑 课件.ppt
- TPM中的设备点检制.doc
- 初中语文经典古文教学的有效性分析教学研究开题报告教学研究课题报告.docx
- 初中语文筛选与分析课文的方法探讨教学研究课题报告.docx
- 高中生物课程改革的挑战与对策教学研究课题报告.docx
- 高中生创造性思维训练的途径教学研究课题报告.docx
- 高中生科学实验报告写作的指导方法教学研究课题报告.docx
- 高中物理教学中概念图的应用实证研究教学研究课题报告.docx
- 教师情绪管理对教学效果的影响研究教学研究课题报告.docx
- 教师在课堂观察中的有效反馈机制研究教学研究课题报告.docx
- 初中生学习方式的变迁与教育应对教学研究课题报告.docx
- 初中生自我管理能力培养的研究教学研究课题报告.docx
文档评论(0)