Oppure

Loading
04/08/09 19:09
Hock
Ciao! E' possibile capire qual'è il colore in esadecimale di un pixel preciso?
aaa
04/08/09 19:11
ruggy94
Postato originariamente da Hock:

Ciao! E' possibile capire qual'è il colore in esadecimale di un pixel preciso?

Un po' generica la domanda. Intendi un pixel di una picturebox, del form, o di tutto lo schermo?
aaa
04/08/09 19:18
Cesco90
in vb 2005 c'è il metodo getpixel passandogli le coordinate ti dà il colore!
aaa
04/08/09 19:21
Hock
di tutto lo schermo con vb6
Ultima modifica effettuata da Hock 04/08/09 19:21
aaa
04/08/09 19:22
ruggy94
Postato originariamente da Cesco90:

in vb 2005 c'è il metodo getpixel passandogli le coordinate ti dà il colore!

Appunto, in VB2005. Qui siamo in vb6 :D
E comunque non sarebbe nemmeno fattibile in quel modo se volesse trovare il colore di un pixel sul resto dello schermo. Per questo gli ho chiesto maggiori informazioni :yup:
aaa
04/08/09 19:26
Cesco90
Ultima modifica effettuata da Cesco90 04/08/09 19:26
aaa
04/08/09 19:36
ruggy94
Ah GetPixel di gdi32...pensavo che intendessi Bitmap.GetPixel di vb.net :D
aaa
04/08/09 20:05
theprogrammer
Devi usare l'hwnd del desktop (costante 0) ...

Se inserisci una Picture nel form e tieni presente che lo schermo non verrà ridimensionato, puoi dare un'occhiata a questo codice che ho buttato giu' per prova

Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) 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 ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long

Private Const HWND_DESKTOP = 0

Private Sub Command1_Click()
    Dim dskHdc As Long
    Dim x As Long
    Dim y As Long
    
    dskHdc = GetDC(HWND_DESKTOP)
    
    Picture1.AutoRedraw = True
    For y = 0 To Picture1.Height / Screen.TwipsPerPixelY
        For x = 0 To Picture1.Width / Screen.TwipsPerPixelX
            SetPixel Picture1.hdc, x, y, GetPixel(dskHdc, x, y)
        Next x
        DoEvents
        Picture1.Refresh
    Next y
    
    ReleaseDC HWND_DESKTOP, dskHdc
End Sub
aaa