Option ExplicitPrivate Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" ( _ ByVal Destination As Long, _ ByVal Source As Long, _ ByVal Length As Long)Private Sub Command1_Click() Dim I As Long, J(3) As Byte
I = 16243629 CopyMemory VarPtr(J(0)), VarPtr(I), 4 Debug.Print "R=" & Hex(J(0)) & " G=" & Hex(J(1)) & " B=" & Hex(J(2)) End Sub
窗体请装载一张图片Private Declare Function GetPixel Lib "gdi32" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long) As Long Dim Colorval&, Red&, Green&, Blue& Private Sub Form_Load() Me.ScaleMode = 3 End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Colorval = GetPixel(Me.hDC, X, Y) Call GetRGB(Colorval) Me.Caption = CStr(Colorval) & " 分解为 红:" & CStr(Red) & " 绿:" & CStr(Green) & " 蓝:" & CStr(Blue) End SubPublic Sub GetRGB(Clrval As Long) Red = Clrval Mod 256 Green = (Clrval \ 256) Mod 256 Blue = Clrval \ 256 \ 256 End Sub
Option ExplicitPrivate Sub Command1_Click() Dim l As Long
l = RGB(0, 255, 0)
Dim r As Byte Dim g As Byte Dim b As Byte
getrgb l, r, g, b
End SubPrivate Sub getrgb(ByVal c As Long, ByRef r As Byte, ByRef g As Byte, ByRef b As Byte) If c < 0 Then c = c + 2 ^ 32 End If
r = c Mod 256 g = (c \ 256) Mod 256 b = (c \ 65536) Mod 256
ByVal Destination As Long, _
ByVal Source As Long, _
ByVal Length As Long)Private Sub Command1_Click()
Dim I As Long, J(3) As Byte
I = 16243629
CopyMemory VarPtr(J(0)), VarPtr(I), 4
Debug.Print "R=" & Hex(J(0)) & " G=" & Hex(J(1)) & " B=" & Hex(J(2))
End Sub
Dim Colorval&, Red&, Green&, Blue&
Private Sub Form_Load()
Me.ScaleMode = 3
End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Colorval = GetPixel(Me.hDC, X, Y)
Call GetRGB(Colorval)
Me.Caption = CStr(Colorval) & " 分解为 红:" & CStr(Red) & " 绿:" & CStr(Green) & " 蓝:" & CStr(Blue)
End SubPublic Sub GetRGB(Clrval As Long)
Red = Clrval Mod 256
Green = (Clrval \ 256) Mod 256
Blue = Clrval \ 256 \ 256
End Sub
Dim l As Long
l = RGB(0, 255, 0)
Dim r As Byte
Dim g As Byte
Dim b As Byte
getrgb l, r, g, b
End SubPrivate Sub getrgb(ByVal c As Long, ByRef r As Byte, ByRef g As Byte, ByRef b As Byte)
If c < 0 Then
c = c + 2 ^ 32
End If
r = c Mod 256
g = (c \ 256) Mod 256
b = (c \ 65536) Mod 256
End Sub