|
Option Explicit
Private Declare Function BitBlt Lib "gdi32" (ByVal _
hDestDC As Long, ByVal x As Long, ByVal y _
As Long, ByVal nWidth As Long, ByVal nHeight _
As Long, ByVal hSrcDC As Long, ByVal xSrc As _
Long, ByVal ySrc As Long, ByVal dwRop As Long) _
As Long
Private Declare Function GetCursorPos Lib "user32" _
(lpPoint As POINTAPI) As Long
Private Declare Function GetDC Lib "user32" (ByVal _
hWnd 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 Declare Function ScreenToClient Lib "user32" _
(ByVal hWnd As Long, lpPoint As POINTAPI) As Long
Private Declare Function WindowFromPoint Lib "user32" _
(ByVal xPoint As Long, ByVal yPoint As Long) _
As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hWnd _
As Long, ByVal hDC As Long) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Private Sub Form_Load()
Timer1.Interval = 50
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Dim hWndp&, hDCp&, Result&, Pt As POINTAPI
Static LastX&, LastY&
Call GetCursorPos(Pt)
If Pt.x = LastX And Pt.y = LastY Then Exit Sub
LastX = Pt.x
LastY = Pt.y
Label1.Caption = "x-" & Pt.x & " y-" & Pt.y
hWndp = WindowFromPoint(Pt.x, Pt.y)
Label3.Caption = hWndp
hDCp = GetDC(hWndp)
Label4.Caption = hDCp
Call ScreenToClient(hWndp, Pt)
Label2.Caption = "x-" & Pt.x & " y-" & Pt.y
Result = GetPixel(hDCp, Pt.x, Pt.y)
If Result = -1 Then
Call BitBlt(Picture1.hDC, 0, 0, 1, 1, hDCp, Pt.x, Pt.y, _
vbSrcCopy)
Result = Picture1.Point(0, 0)
End If
Call ReleaseDC(hWndp, hDCp)
Picture1.BackColor = Result
End Sub
|