图形基础(二十五)

2010-12-30 21:10:52 · 作者: · 浏览: 40668
和y栏位指出了先前的目前位置。如果您不需要这种资讯(通常如此),可以简单地如上面的例子所示的那样将最後一个参数设定为NULL。


警告:

尽管Windows 98中的座标值看起来是32位元的,实际上却只用到了低16位元,座标值实际上被限制在-32,768到32,767之间。在Windows NT中,使用完整的32位元值。


如果您需要目前位置,就可以通过以下呼叫获得:

其中,pt是POINT结构的。

下面的程式码从视窗的左上角开始,在显示区域中画一个网格,线与线之间相隔100个图素,其中hwnd是视窗代号,hdc是装置内容代号,而x和y是整数:

虽然用两个函式来画一条直线显得有些麻烦,但是在希望画一组相连的直线时,目前画笔位置属性又会变得很有用。例如,您可能想定义一个包含5个点(10个值)的阵列,来画一个矩形的边界框:

注意,最後一个点与第一个点相同。现在,只需要使用MoveToEx移到第一个点,并对後面的点使用LineTo:

由於LineTo从目前位置画到(但不包括)LineTo函式中给出的点,所以这段程式码没有在任何座标处画两次。虽然在显示器上多输出几次不存在问题,但是在绘图机上或者在其他绘图方式(下面马上会讲到)下,视觉效果就不太好了。

当您要将阵列中的点连接成线时,使用Polyline函式要简单得多。下面这条叙述画出与上面一段程式码相同的矩形: