猴哥的说法是正确的,-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
另外,Picture1.picture.width属性是以0.01mm为单位的,这样遍历效率很低
GetPixel()返回值:返回值是该象像点的RGB值。如果指定的像素点在当前剪辑区之外;
那么返回值是CLR_INVALID。 CLR_INVALID = &HFFFF即65535,
在vb6下的变量中(不管你用long或是variant,a=&HFFFF,debug.print a)就是-1
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