第5章,[Win32 章节] :点和线的绘制与设定像素 专栏导航上一篇第5章[Win32 章节] 保存设备环境回到目录下一篇第5章[Win32 章节] 绘制直线一本节前言对于本节所讲解的知识有可能你会需要时不时地参考本专栏的其它文章。真的遇到了需要参考之前的文章的知识点请你自行查阅。我呢也会提到一部分的参考课节。但是呢你不应该依赖于我的主动提及。最好呢你自己能够多去了解和查看本专栏目录。本节内容主要来自于对佩措尔德原教材的大段抄录。我们开始。一. 点和线的绘制理论上所有的图形设备驱动程序所需要的就是 SetPixel 函数和 GetPixel 函数。其余的一切都可以使用在 GDI 模块中实现的更高层的例程来处理。例如画一条线GDI 可以不停地调整 x 和 y 坐标然后连续调用多次 SetPixel 函数来实现。事实上仅使用 SetPixel 和 GetPixel 函数确实可以绘制几乎所有需要的图形。也可以在这些函数的基础上设计一个简洁好用的结构良好的图形程序系统。唯一的问题是性能。如果一个函数需要多次调用 SetPixel 函数那么它执行起来会非常慢。如果一个图形系统是建立在设备驱动程序的层次上进行画线操作和其他复杂图形操作它就会有效得多因为设备驱动程序对完成实际操作的程序代码进行了最优化处理。更不用说一些视频适配器板卡还包含允许视频硬件直接进行绘图的图形处理器。二. 设定像素尽管 Windows GDI 包含 SetPixel 和 GetPixel 函数但它们并不常用。在本专栏中只有后面某一章的 Connet 程序才用到 SetPixel 程序只有后面某一章的 WhatClr 程序才用到 GetPixel 函数。尽管如此方便起见我们还是从它们开始研究绘图函数。SetPixel 函数将坐标为 x 和 y 的像素点设定为某个特定的颜色。SetPixel (hdc, x, y, crColor);如同任何一个绘图函数SetPixel 函数的第一个参数也是设备环境句柄。它的第二个和第三个参数表示坐标位置。大多数情况下使用的是窗口显示区域的设备环境并且 x 和 y 的值是相对于显示区域的左上角。最后一个参数是 COLORREF 类型用来指定颜色。如果视频显示器不支持你在该函数中指定的颜色则该函数会将像素设定为最接近的非合成颜色并返回该颜色值。GetPixel 函数返回指定坐标位置的像素的颜色。crColor GetPixel (hdc, x, y);专栏导航上一篇第5章[Win32 章节] 保存设备环境回到目录下一篇第5章[Win32 章节] 绘制直线一