本帖最后由 bcrun 于 2011-09-20 14:23:06 编辑

解决方案 »

  1.   

    mycolor 没看到类型定义,使用定义为Long类型?
    另外,Picture1.picture.width属性是以0.01mm为单位的,这样遍历效率很低
      

  2.   


    GetPixel()返回值:返回值是该象像点的RGB值。如果指定的像素点在当前剪辑区之外;
    那么返回值是CLR_INVALID。 CLR_INVALID = &HFFFF即65535,
    在vb6下的变量中(不管你用long或是variant,a=&HFFFF,debug.print a)就是-1
      

  3.   

    猴哥的说法是正确的,-1其实表示的就是:&H100楼主可以试一试这个代码Option Explicit
    Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
    Private Sub Command1_Click()
        Dim x, y As Long
        Dim myColor As Long
        For y = 0 To Picture1.Picture.Width
            For x = 0 To Picture1.Picture.Height
                myColor = GetPixel(Picture1.hdc, x, y) '获取Picture控件图像里的像素颜色
                MsgBox myColor
            Next x
        Next y
    End SubPrivate Sub Form_Load()
        Picture1.ScaleMode = vbPixels
        Picture1.BackColor = RGB(0, 0, 255)
    End Sub