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的返回值是什么类型的???

解决方案 »

  1.   

    不准确!接口是一种协议,是不能“返回”的,返回的是一个引用。例如:
        Dim a As Long
        
        a = LoadPicture("c:\wd.bmp")
        Debug.Print a而且使用Let并不矛盾,Picture是一个Object,也是一个Variant。
      

  2.   

    返回的只是一个图片的接口,是一个比较大的长整型值,
    直接给PICTURE属性就行了,用不用SET 和LET都可以~~
      

  3.   

    而用Let并没有真正的将LoadPicture装载的对象引用过去,看看下面的代码:    Dim a As Long
        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这个文件),因为不是正确的引用。
      

  4.   

    http://freepark.myrice.com/movies/dy1.htm
      

  5.   

    copy自对象浏览器
    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 属性是有用的。
      

  6.   

    msgbox vartype(loadpicture("1.gif"))