在任意位置绘制图形

使用 PaintPicture 方法,可以在窗体、图片框和 Printer 对象上的任何地方,绘制图形。PaintPicture 方法的语法是:

[object.]PaintPicture pic, destX, destY[, destWidth[, destHeight[, srcX _

[, srcY[, srcWidth[, srcHeight[, Op]]]]]]]

目标 object 指的是窗体、图片框或 Printer 对象,这些地方都是 pic 图片表现的处所。如果 object 被忽略了,则认为指定的就是当前的窗体。pic 参数必须是一个图片对象,它是由窗体或控件的 Picture 属性决定。

destX destY 参数,是按照 objec 的 ScaleMode,该图象将出现的水平和垂直位置。destWidthdestHeight 参数是可选项,用来设置在 object 目标中该图象的宽度和高度。

srcX srcY 参数是可选项,用来定义 pic 中裁剪区左上角的 x 和 y 坐标。

可选的 Op 参数用来定义当在目标 object 上绘图时,在图片上执行的光栅操作(例如,AND 和 XOR)。

PaintPicture 方法可代替 BitBlt Windows API 函数,在将矩形图形块从一个地方移到任意另一地方时,它可执行广泛的各种操作。

例如,可以使用 PaintPicture 方法生成同一位图的多份副本,并将它们平铺在窗体上。使用这种方法,比在窗体上移动图片控件要快。下列代码是用来平铺图片控件的 100 份拷贝,并且通过给 destWidth 设置一个负值,可以使每张图片进行水平翻转。

For i = 0 To 10
   For j = 0 To 10
      Form1.PaintPicture picF.Picture, j * _
         picF.Width, i * picF.Height, _
         picF.Width, -picF.Height
Next j, i

详细信息 请参阅《语言参考》的“PaintPicture 方法”。