以下是引用sclx88在2016-9-6 11:33:18的发言:
大神,不懂你的高科技,我做出来是加载所有图片
Private Sub Command1_Click()
Form1.AutoRedraw = True
Dim i As Integer
For i = 1 To 9
Form1.PaintPicture LoadPicture("D:\1111\" & i & ".jpg"), 0, 0
Next
End Sub
刚检查发现你载入图像的代码有问题。好吧,我更正过了。
LoadPicture 函数
将图形载入到窗体的 Picture 属性、PictureBox 控件或 Image 控件。
语法
LoadPicture([filename], [size], [colordepth],[x,y])
LoadPicture 函数语法有下列部分:
部分 描述
filename 可选的。字符串表达式指定一个文件名。可以包括文件夹和驱动器。如果未指定文件名,LoadPicture 清除图象或 PictureBox 控件。
size 可选变体。如果 filename 是光标或图标文件,指定想要的图象大小。
colordepth 可选变体。如果 filename 是一个光标或图标文件,指定想要的颜色深度。
x 可选变体,如果使用 y ,则必须使用。如果 filename 是一个光标或图标文件,指定想要的宽度。在包含多个独立图象的文件中,如果那样大小的图象不能得到时,则使用可能的最好匹配。只有当 colordepth 设为 vbLPCustom 时,才使用X 和 Y值。For icon files 255 is the maximum possible value
y 可选变体,如果使用 x, 则必须使用。如果 filename 是一个光标或图标文件,指定想要的高度。在包含多个独立图象的文件中,如果那样大小的图象不能得到时,则使用可能的最好匹配。For icon files 255 is the maximum possible value
设置值
size 的设置值为:
常量 值 描述
vbLPSmall 0 系统小图标。
vbLPLarge 1 系统大图标,由视频驱动程序决定。
vbLPSmallShell 2 外壳小图标大小,由“控制面板”中的 Display Properties 对话框中 Appearance 选项卡上的 Caption Buttons 的大小设置决定。
vbLPLargeShell 3 外壳大图标大小,由“控制面板”中的 Display Properties 对话框中 Appearance 选项卡上的图标大小设置决定。
vbLPCustom 4 自定义大小,由 x 和 y 参数提供值。
colordepth 的设置值为:
常量 值 描述
vbLPDefault 0 如果使用指定文件,则为最佳可用匹配。
vbLPMonochrome 1 2 色。
vbLPVGAColor 2 16 色。
vbLPColor 3 256 色。
说明
Visual Basic 可以识别的图形格式有:位图 (.bmp) 文件、图标 (.ico) 文件、光标 (.cur) 文件,行程编码 (.rle) 文件、元 (.wmf) 文件、增强的元文件 (.emf), GIF(.gif) 文件以及 JPEG (.jpg) 文件。
赋值不带参数的 LoadPicture 将清除窗体、图片框及图象控件中的图形。
为了加载在 PictureBox 控件和 Image 控件中显示的图形或加载作为窗体背景的图形,必须将 LoadPicture 的返回值赋给要显示该图片的对象的 Picture 属性。例如:
Set Picture = LoadPicture("PARTY.BMP")
Set Picture1.Picture = LoadPicture("PARTY.BMP")
如果要将图标赋予窗体,则要把 LoadPicture 函数的返回值赋给 Form 对象的 Icon 属性:
Set Form1.Icon = LoadPicture("MYICON.ICO")
图标也可以被赋予除 Timer 控件和 Menu 控件外的其它控件的 DragIcon 属性,例如:
Set Command1.DragIcon = LoadPicture("MYICON.ICO")
使用 LoadPicture 可将图形文件载入到系统剪贴板,如下所示:
Clipboard.SetData LoadPicture("PARTY.BMP")
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
End Sub