Sandro Bizioli


Chi sogna di giorno conosce molte cose che sfuggono a chi sogna soltanto di notte. (E.A.Poe)
Mappa

Pixel RGB color under cursor

Come possiamo recuperare il valore RGB del pixel che si trova sotto il cursore del mouse?
Nell'esempio seguente sfrutteremo tre API di Windows e poche riche di codice.

Apriamo un nuovo progetto VB6 con un form ed un controllo timer in esso e copiamo il seguente codice. Una volta avviato nella caption del titolo della form verranno riportati i valori RGB del pixel sotto il puntatore del mouse, in qualsiasi parte dello schermo esso si trovi.


Option Explicit
Private Type POINTAPI
    X As Long
    Y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" (ByRef lpPoint As POINTAPI) 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 GetDC Lib "user32" (ByVal hwnd As Long) As Long

Private Sub Timer1_Timer()
Dim bCheck As Boolean
Dim lpPoint As POINTAPI
Dim lPixelColor As Long
Dim sTmp As String, myRed As String, myGreen As String, myBlue As String
    bCheck = GetCursorPos(lpPoint)
   
    If bCheck Then
        lPixelColor = GetPixel(GetDC(0), lpPoint.X, lpPoint.Y)  'GetDC(0) returns screen DC
               
        sTmp = Right$("000000" & Hex(lPixelColor), 6)
        myRed = Val("&H" & Right$(sTmp, 2))
        myGreen = Val("&H" & Mid$(sTmp, 3, 2))
        myBlue = Val("&H" & Left$(sTmp, 2))
   
        Me.Caption = lPixelColor & " Red: " & myRed & " Green: " & myGreen & " Blue:" & myBlue
    End If
   
End Sub
Categoria: VB6
venerdì, 05 gen 2007 Ore. 17.36
Statistiche
  • Views Home Page: 109.876
  • Views Posts: 560.216
  • Views Gallerie: 108.941
  • n° Posts: 227
  • n° Commenti: 222
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003