这要借助API函数。先使用: h = CreateDC("DISPLAY", vbNullString, 0, 0) 得到一个hDC,实际就是整个屏幕的hDC。然后利用GetPixel(h, x, y)就可以得到任意点(x, y)的颜色值。 Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" _ (ByVal lpDriverName As String, ByVal lpDeviceName As String, _ ByVal lpOutput As String, ByVal lpInitData As Any) As Long
Private Declare Function DeleteDC Lib "gdi32" _ (ByVal hdc As Long) As Long
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 nDC As Long OldX = Screen.Width / Screen.TwipsPerPixelX OldY = Screen.Height / Screen.TwipsPerPixelY nDC = CreateDC("DISPLAY", vbNullString, vbNullString, ByVal 0&) Me.BackColor = GetPixel(nDC, 0, 0) DeleteDC nDC End Sub 以上摘自问专家网。
h = CreateDC("DISPLAY", vbNullString, 0, 0)
得到一个hDC,实际就是整个屏幕的hDC。然后利用GetPixel(h, x, y)就可以得到任意点(x, y)的颜色值。
Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" _
(ByVal lpDriverName As String, ByVal lpDeviceName As String, _
ByVal lpOutput As String, ByVal lpInitData As Any) As Long
Private Declare Function DeleteDC Lib "gdi32" _
(ByVal hdc As Long) As Long
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 nDC As Long
OldX = Screen.Width / Screen.TwipsPerPixelX
OldY = Screen.Height / Screen.TwipsPerPixelY
nDC = CreateDC("DISPLAY", vbNullString, vbNullString, ByVal 0&)
Me.BackColor = GetPixel(nDC, 0, 0)
DeleteDC nDC
End Sub 以上摘自问专家网。