PaintPicture 方法的运用

时间: 2007-7-10 10:41:00 作者: 刘继周

PaintPicture 方法

用以在 Form, PictureBox Printer 上绘制图形文件(.bmp.wmf.emf.cur.ico .dib)的内容。不支持命名参数

语法

object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcode

PaintPicture 方法的语法包含下列部分:

部分

描述

object

可选的。一个对象表达式,其值为应用于列表中的一个对象。如果省略 object,带有焦点Form 对象缺省为 object

Picture

必需的。要绘制到 object 上的图形源。Form PictureBox 必须是 Picture 属性。

x1, y1

必需的。均为单精度值,指定在 object 上绘制 picture 的目标坐标(x-轴和y-轴)。object ScaleMode 属性决定使用的度量单位。

Width1

可选的。单精度值,指示 picture 的目标宽度。object ScaleMode 属性决定使用的度量单位。如果目标宽度比源宽度 (width2) 大或小,将适当地拉伸或压缩 picture。如果该参数省略,则使用源宽度。

Height1

可选的。 单精度值,指示 picture 的目标高度。object ScaleMode 属性决定使用的度量单位。如果目标高度比源高度 (height2) 大或小,将适当地拉伸或压缩 picture。如果该参数省略,则使用源高度。

x2, y2

可选的。均为单精度值,指示 picture 剪贴区的坐标(x-轴和y-轴)。object ScaleMode 属性决定使用的度量单位。如果该参数省略,则缺省为 0

Width2

可选的。单精度值,指示 picture 剪贴区的源宽度。object ScaleMode 属性决定使用的度量单位。如果该参数省略,则使用整个源宽度。

Height2

可选的。 单精度值,指示 picture 剪贴区的源高度。object ScaleMode 属性决定使用的度量单位。如果该参数省略,则使用整个源高度。

Opcode

可选的。是长型值或仅由位图使用的代码。它用来定义在将 pictur 绘制到 object 上时对 picture 执行的位操作(例如, vbMergeCopy vbSrcAnd 操作符)。关于位操作符常数的完整列表,请参阅 Visual Basic Help 文件中的 RasterOp Constants 主题。

在使用opcode时有一些限制。例如,如果资源是图标或图元文件,则只能使用 vbSrcCopy,而不能使用其他的opcode;并且,与图案 ( SDK 术语中的"画笔"),如 MERGECOPY PATCOPY PATPAINT PATINVERT,相交互的opcode实际上是同目标的 FillStyle 属性交互。

注意   Opcode 用于将按位操作传递到位图。当传递其他图象类型时将一个值给该参数会造成无效过程调用或参数错误。这是设计的原因。要避免这个错误,对于除位图外的图象,将 Opcode 参数置为空。

 

说明

通过使用负的目标高度值 (height1) / 或目标宽度值 (width1) 可以水平或垂直翻转位图。

可以省略任何多个可选的尾部的参数 。如果省略了一个或多个可选尾部参数,则不能在指定的最后一个参数后面使用逗号。如果想指定某个可选参数,则必须先指定语法中出现在该参数前面的全部参数。

注意,在将一个.Bmp加载入 PictureBox 控件和使用 Windows API 函数 BitBlt() 添加图片之间有一点不同。当您对一个图象使用 BitBlt() 时,PictureBox 控件不知道您使用 LoadPicture方法那样去调整大小。将 ScaleWidth ScaleHeight 属性设置为图象的大小也不起作用。如果您想在使用 BitBlt 之后用 PictureBox 调整新图片的大小,必须用代码手工做,转换单位并处理边框,下面是如何这样做的一个简单示例:

Sub ResizePictureBoxToImage(pic as PictureBox, twipWd _

  as Integer, twipHt as Integer)

 ' 该代码假设所有的单位都为。如果

 ' 不是,必须在调用该例程之前,转换为

 ' 这里也假设图象显示在0,0处。

 Dim BorderHt as Integer, BorderWd as Integer

 BorderWd = Pic.Width - Pic.ScaleWidth

 BorderHt = Pic.Height - Pic.ScaleHeight

 pic.Move pic.Left, pic.Top, twipWd + BorderWd, _

   twipHt + BorderHt

VB中用Paintpicture方法进行图形处理

在控件picture1中放一张源图,在控件picture2上进行图形处理:

1.复制:picture2.paintpicture picture1.picture,0,0,picture2.width,picture.height,0,0, picture1.width,picture1.height

2.图形左右倒置:picture2.paintpicture picture1.picture,0,0,picture2.width,picture2.height,picture1.width,0, picture1.width,picture1.height

3.图形上下倒置:picture2.paintpicture picture1.picture,0,0,picture2.width,picture2.height,0, picture1.height,picture1.width,- picture1.height

(编辑: SYCSTE工作室 阅读:
相关资源
  • 利用VB进行多媒体程序设计初步 [2007-7-10]
  • VB中用Multimedia MCI控件开发多媒体应用 [2007-7-10]
  • MSDN下载(内含Visual Basic 6 帮助文件) [2007-7-3]
  • 上海市第六届“西部杯”计算机应用操作竞赛VB程序设计决赛试卷 [2007-5-10]
  • 第四章 三种基本结构程序设计 [2006-9-22]
  • 第二章 VB基本控件及简单程序设计 [2006-9-7]
  • 参与评论(条评论)
    请遵守国家法律
    笔名:
    邮箱:
    查看评论
    Shanghai Youth Centre of Science & Technology Education
    地址: 岳阳路45号 电话: 64336360 版权所有 上海市青少年科技教育中心
    Copyright © 1996 - 2005 SYCSTE