我要把一个Image.Picture对象传递给我自已做的一个过程里面。我用了Object,PictureBox,Image来定义都不行。
后来我看MSDN上说定义一个Picture对象要使用StdPicture但是结果却报“用户类型未定义错误”请问有什么方法可以解决么?源码如下:Private Function ShowPic(ThisObj As StdPicture, PicPath As String, ShowFlag As State_Pic)
On Error GoTo Err
  If ShowFlag Then
    ThisObj = LoadPicture(PicPath)
  Else
    ThisObj = LoadResPicture(PicPath, 0)
  End If
  Exit Function
Err:
  ThisObj = LoadPicture()
End Function

解决方案 »

  1.   

    1. State-Pic是什么东西?定义过么?看使用似乎是个Boolean2. StdPicture是对象,对象的赋值需要在前面加Set关键字
      

  2.   

    我也知道哇。但是在过程申明里面怎么定义呢?State_Pic定义如下:
        
    Public Enum State_Pic
        图片文件 = 1
        资源文件 = 0
    End Enum
      

  3.   

    改成这样试试:
    Private Function ShowPic(ThisObj As picture, PicPath As String, ShowFlag As State_Pic)
    state_pic  这是个什么类型??????
      

  4.   

    改成Picture也是和StdPicture报一样的错误“用户类型未定义错误”
      

  5.   

    Private Function ShowPic(ThisObj As PictureBox, PicPath As String, ShowFlag As State_Pic)
    On Error GoTo Err
      If ShowFlag Then
        ThisObj = LoadPicture(PicPath)
      Else
        ThisObj = LoadResPicture(PicPath, 0)
      End If
      Exit Function
    Err:
      ThisObj = LoadPicture()
    End Function
      

  6.   

    我知道了。我这个过程是用在自已做的控件里面。不知道什么原因不能申明Picture对象。 但是我在外部可以申明。  
    请高手作答谢谢!
      

  7.   

    Private Function ShowPic(ThisObj As PictureBox, PicPath As String, ShowFlag As State_Pic)
    On Error GoTo Err
      If ShowFlag Then
        Set ThisObj = LoadPicture(PicPath)
      Else
        Set ThisObj = LoadResPicture(PicPath, 0)
      End If
      Exit Function
    Err:
      Set ThisObj = LoadPicture()
    End Function
      

  8.   

    不好意思,没有看清题意:Private Function ShowPic(ThisObj As StdPicture, PicPath As String, ShowFlag As State_Pic)
    On Error GoTo Err
      If ShowFlag Then
        Set ThisObj = LoadPicture(PicPath)
      Else
        Set ThisObj = LoadResPicture(PicPath, 0)
      End If
      Exit Function
    Err:
      Set ThisObj = LoadPicture()
    End Function