LoadPicture函数的返回值类型是什么?
我定义Variant变量必须用Set语句才能从LoadPicture中得到一个值,
所以应该说它的返回值是个对象。
但是MSDN里面并没有说明此函数的返回值,只是说:将图形载入到窗体的 Picture 属性、PictureBox 控件或 Image 控件。
语法
LoadPicture([filename], [size], [colordepth],[x,y])而且事例中是使用set picture1.picture=loadpicture("filename.bmp")来赋值的,
可是我用Let赋值也可以正常运行!
picture属性我觉得它应该是一个对象!
但是为什么它可以接受Set赋值也可以接受Let赋值呢???
还有LoadPicture的返回值是什么类型的???
我定义Variant变量必须用Set语句才能从LoadPicture中得到一个值,
所以应该说它的返回值是个对象。
但是MSDN里面并没有说明此函数的返回值,只是说:将图形载入到窗体的 Picture 属性、PictureBox 控件或 Image 控件。
语法
LoadPicture([filename], [size], [colordepth],[x,y])而且事例中是使用set picture1.picture=loadpicture("filename.bmp")来赋值的,
可是我用Let赋值也可以正常运行!
picture属性我觉得它应该是一个对象!
但是为什么它可以接受Set赋值也可以接受Let赋值呢???
还有LoadPicture的返回值是什么类型的???
Dim a As Long
a = LoadPicture("c:\wd.bmp")
Debug.Print a而且使用Let并不矛盾,Picture是一个Object,也是一个Variant。
直接给PICTURE属性就行了,用不用SET 和LET都可以~~
Dim x
Dim x1
a = LoadPicture("c:\wd.bmp")
Debug.Print Hex(a)
Set x = LoadPicture("c:\wd.bmp")
Debug.Print Hex(x)
Debug.Print x.Width
Let x1 = LoadPicture("c:\wd.bmp")
Debug.Print Hex(x1)
Debug.Print x1.Width因为返回的是一个对象的引用,实际上是一个Long类型的值,你用Let当然可以通过,但是上面的代码最后一句是执行不通过的(当然前面的代码执行通过前提是你的硬盘上有c:\wd.bmp这个文件),因为不是正确的引用。
Function LoadPicture([filename], [widthDesired As Long], [heightDesired As Long], [flags As LoadPictureConstants = Default]) As IPictureDisp
stdole.StdFunctions 的成员
Loads a picture from a file
-----------
说明它返回IPictureDisp
IPictureDisp的的缺省成员是Handle
所以,作为对象使用是IPictureDisp
作为数据使用是Handle-----------
Handle 属性
返回一个句柄,指向 Picture 对象内包含的图形。语法object.Handleobject 所在处表示对象表达式,其值是“应用于”列表中的一个对象。返回值Handle 属性的返回值取决于当前 Type 属性的设置,如下表所示:Type 属性 返回值
1(位图) HBITMAP 句柄。
2(元文件) HMETAFILE 句柄。
3(图标) HICON 或HCURSOR 句柄。
4(增强的元文件) HENHMETAFILE 句柄。
说明作为调用动态链接库 (DLL) 或 Windows API函数的一个部分需传递图形的句柄时,Handle 属性是有用的。