第5章,[标签 Win32] :GDI 函数调用

张开发
2026/4/15 20:52:18 15 分钟阅读

分享文章

第5章,[标签 Win32] :GDI 函数调用
专栏导航上一篇第5章[标签 Win32] GDI 的结构与原理回到目录下一篇无本节前言对于本节所讲解的知识有可能你会需要时不时地参考本专栏的其它文章。真的遇到了需要参考之前的文章的知识点请你自行查阅。我呢也会提到一部分的参考课节。但是呢你不应该依赖于我的主动提及。最好呢你自己能够多去了解和查看本专栏目录。本节内容来自于对佩措尔德原教材的大段抄录。我们开始。一. 本节内容GDI 包含有几百个函数可以分成下面几大类。获取或建立和释放或销毁设备环境的函数如前几章所述绘制时需要使用一个设备环境句柄。BeginPaint 和 EndPaint 函数尽管从技术上来说它们属于 User 模块而不是 GDI 模块允许你在处理 WM_PAINT 消息时做到这一点。在处理其他消息时可以通过调用 GetDC 和 ReleaseDC 函数来达到相同的目的。稍后马上要介绍其他一些有关设备环境的函数。获取设备环境信息的函数在第四章的 SysMets 程序中我们使用 GetTextMetrics 函数来获取当前被选入设备环境的字体大小信息。在本章后面的 DevCaps1 程序我们将会看到它如何获取其他更广泛的设备环境信息。绘图函数显然一旦绘图准备工作就绪这里说的函数才是真正重要的部分。在第四章中我们使用 TextOut 函数在窗口的客户区输出文本。随后将介绍一个允许我们绘制线条和填充区域的 GDI 函数。在第 14 章和第 15 章我们还将会看到如何绘制位图图像。设置和获取设备环境属性的函数设备环境的属性确定绘图函数绘图时的各种细节。例如可以使用 SetTextColor 函数来指定 TextOut或者其他文本输出函数绘制的文本的颜色。在第四章的 SysMets 程序中我们使用 SetTextAlign 函数来通知 GDITextOut 函数中文本字符串的对齐方式是右对齐还是左对齐。所有的设备环境的属性都有一个默认值这个默认值在获取设备环境时就已经被设置好了。对所有的以 Set 开头的函数都有相应的一个以 Get 开头的函数用于获取当前设备环境的属性。使用 GDI “对象” 的函数在这里GDI 变得有些杂乱无章。首先举个例子在默认情况下使用 GDI 绘制的任何线条都是实线并且有着标准的宽度。你可能希望绘制比较细的线条或者使用一系列点或者短线画线条。线条的宽度和线条的样式并不是设备环境的属性。然而它们是 “逻辑画笔” 的特性。你可以想象画笔含有各种各样的特性。在 CreatePen、CreatePenIndirect 或者 ExtCreatePen 函数中指定这些特性来创建逻辑画笔。尽管这些函数被视为 GDI 的一部分但与大多数的 GDI 函数不同它们不需要使用设备环境句柄。这些函数会返回逻辑画笔的句柄。为了使用这个画笔把画笔句柄选入设备环境即可。当前被选入设备环境的画笔被视为设备环境的一个属性。这样便可以通过这只画笔绘制任何线条。随后从设备环境中取消选入的画笔对象并销毁这个对象。因为画笔定义占用了一定的内存空间所以销毁画笔是非常重要的。除了画笔还可以在字体、创建用于填充封闭区域的画刷、位图以及 GDI 的其他一些方面使用 GDI 对象。专栏导航上一篇第5章[标签 Win32] GDI 的结构与原理回到目录下一篇无

更多文章