然後,您可以更改某些属性并再次呼叫SaveDC。要将装置内容恢复到一个已经保存的状态,呼叫:
这就将装置内容恢复到最近由SaveDC函式保存的状态中。
画点和线
在第一章,我们谈论过Windows图形装置介面将图形输出设备的装置驱动程式与电脑连在一起的方式。在理论上,只要提供SetPixel和GetPixel函式,就可以使用图形装置驱动程式绘制一切东西了。其余的一切都可以使用GDI模组中实作的更高阶的常式来处理。例如,画线时,只需GDI呼叫SetPixel数次,并适当地调整x和y座标。
在实际情况中,也的确可以仅使用SetPixel和GetPixel函式进行您需要的任何绘制。您也可以在这些函式的基础上设计出简洁和构造良好的图形编程(www.cppentry.com)系统。唯一的问题是启能。如果一个函式通过几次呼叫才能到达SetPixel函式,那么它执行起来会非常慢。如果一个图形系统画线和进行其他复杂的图形操作是在装置驱动程式的层次上,它就会更有效得多,因为装置驱动程式对完成这些操作的程式码进行了最佳化。此外,一些显示卡包含了图形辅助运算器,它允许视讯硬体自己绘制图形。
设定图素
即使Windows GDI包含了SetPixel和GetPixel函式,但很少使用它们。在本书,仅在第七章的CONNECT程式中使用了SetPixel函式,仅在第八章的WHATCLR程式中使用了GetPixel函式。尽管如此,由它们开始来研究图形仍是非常方便。
SetPixel函式在指定的x和y座标以特定的颜色设定图素:
如同在任何绘图函式中一样,第一个参数是装置内容的代号。第二个和第三个参数指明了座标位置。通常要获得视窗显示区域的装置内容,并且x和y相对于该显示区域的左上角。最後一个参数是COLORREF型态指定了颜色。如果在函式中指定的颜色视讯显示器不支援,则函式将图素设定为最接近的纯色并从函式传回该值。
GetPixel函式传回指定座标处的图素颜色:
直线
Windows可以画直线、椭圆线(椭圆圆周上的曲线)和贝塞