网站大量收购闲置独家精品文档,联系QQ:2885784924

第4GDI函数.pptVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4GDI函数

第4章 GDI函数 如前文所述,作为Windows程序设计,界面的方便和美观是前提。Win32 SDK提供了丰富的GDI函数,而MFC则将这些函数都封装起来,让本来功能强大但不好用的SDK函数变得方便使用。GDI函数涉及的主要是两个方面:文字和图像,本章就是基于这两种处理对象来讲解GDI函数的使用。 本章涉及的知识点有: 设备环境类:读者可以了解CClientDC类和CWindowsDC类的基本概念以及CDC类及其派生类行为的原理。 字体的选择和显示:读者可以学到Windows程序设计中的字体的程序设计。 图像编程:读者可以学到位图等理论知识,并使用MFC封装的图像处理类对位图进行处理。 常用的GDI函数:读者可以学会各种常用的GDI函数的使用。 4.1 设备环境类 本节将介绍设备环境类:CClientDC类和CWindowsDC类,以及CDC对象及其派生类的构造和析构。 4.1.1 CDC类及其派生类简介 Windows应用程序通过为指定的设备(屏幕,打印机等)创建一个设备描述表(Device Context, DC),并在DC表示的逻辑意义的“画布”上进行图形的绘制。DC是一种包含设备信息的数据结构,它包含了物理设备所需的各种状态信息。Win32程序在绘制图形之前需要获取DC的句柄HDC(Handler DC),并在不继续使用时释放掉。通过CDC的成员函数可进行一切绘图操作。CDC提供成员函数进行设备描述表的基本操作,使用绘图工具, 选择类型安全的图形设备结构(GDI),以及色彩,调色板。除此之外还提供成员函数获取和设置绘图属性,映射,控制窗口,窗体范围,转换坐标,区域操作,裁减,划线以及绘制简单图形(椭圆,多边形等)。成员函数也提供绘制文本,设置字体,打印机换码,滚动, 处理元文件。 4.1.2 CDC类对象的行为函数 研发人员使用MFC类库中的CDC设备环境类,主要就是为了使用CDC类及其派生类中封装好的具有Win32 SDK同样功能的函数,从处理对象来分,可分为两种:图形图像和文本。 (1)CDC类中常用的绘图成员函数有: (2)CDC类中有关文本处理的常用的成员函数: 4.2 GDI对象的构造和使用 在一次小的编程实验或计算机程序设计作业中,内存泄漏似乎并不是件大不了的事。原因在于,当程序退出时,泄漏的内存由操作系统负责回收,而这类小程序往往是计算完某个算法或取得某些运算结果就退出,运行时间短,因此,内存泄漏问题似乎丝毫不影响使用人员。 而在大型软件应用中,很多软件,特别是服务器端软件,运行的时间是很长的,因此,如果出现内存泄漏问题,操作系统也无法中途回收,在反复的内存泄漏过程中(如循环语句内的内存泄漏或多次执行到内存泄漏的代码段),系统可用的逻辑内存将逐步被消耗光,从而影响整个系统的运行效率。 4.3 字体选择和显示 MFC中的字体是一种GDI对象,可以被选入设备环境中,也可以按比例缩放或裁减等。字体的选择可以分为两种: 与设备无关的TrueType字体,如Winodws用于显示的System字体。 与设备相关的字体,如LaserJet LinePrinter字体。 MFC库提供了与当前所选择的打印机相关的字体选择对话框,因此开发人员不用去关心打印字体的选择。 在使用固定尺寸的映射模式下,显示卡驱动程序将使用物理尺寸作为映射,如在Windows NT下,在小的显示器上的文字就非常小。而一般用户并不期望这样,而期望字体的尺寸对应于逻辑尺寸而非物理尺寸。 4.4 实例4.1-字体使用 本节将做一个实例来讲解字体的使用,该实例的制作步骤如下: 4.5 GDI位图和DIB位图 如果没有了图形图像,Windows及其应用软件就会变得及其单调。MFC库封装了使用图形图像的Win32函数,MFC也可以通过各种各样的裁减修饰手段使得自己的应用程序界面变得美观。 Windows的位图实际上就是一些和象素相对应的位阵列。如使用256个灰度级别(0~255)的黑白图像,那么就要使用8位的二进制位来表示一个象素点,即2的8次方等于256,当象素点的值为0时,该象素点为黑色,值为255时,该象素点为白色。使用该存储方式的位图很容易计算出图像的容量:1字节=8位二进制,因此一个象素点就是1字节,假设图像是1024×1024大小,即该该图像象素信息部分的容量是1MB。 注意:图像象素信息部分的容量并不等于位图图像的容量,因为位图的容量虽然绝大部分用于存储象素,但也有小部分不能忽略的容量用于存储位图其他信息,称为图像信息头,主要描述图像的大小、格式等信息。 4.6 实例4.2-位图的使用 在前面提到了将资源中的位图装入并显示的代码例子,但大多数情况下,位图的使用是要导入外部图像文件。本节就是讲解一个使用外部位图文件的例子。

文档评论(0)

hello118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档