Newsgroup: it.comp.lang.visual-basic
Titolo: Colore di un pixel

Dovrei prendere il colore che sta in corrispondenza del puntatore del mouse
sia dentro che fuori dal form della mia app.
Ho trovato questa funzione: GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X
As Long, ByVal Y As Long) As Long.
Per X e Y non c'e' probema ma questo "hdc" da che parte lo cerco?
La guida di VB dice: Questa proprietą č un handle del contesto di periferica
dell'ambiente operativo Windows.
Quando leggo queste cose mi viene da piangere!
Roby.
Nota OT ma utile:
sto usando il server delle news 
News.CIS.DFN.DE
 che e' gratuito. Bisogna
solo lasciare nome, cognome ed email sul sito 
http://news.cis.dfn.de/
 ,
moltissime gerarchie tra cui tutta la it.

dell'ambiente operativo Windows.
Crea una PictureBox chiamata Picture1 (che fantasia ^__^)
Poi:
Picture1.Height = Screen.Height
Picture1.Width = Screen.Width
Picture1.AutoRedraw = True
Picture1.Visible = False
Dim typePOINTAPI As POINTAPI
Dim typeDEVMODE As DEVMODE
Dim hdcs As Long
GetCursorPos typePOINTAPI
hdcs = CreateDC("DISPLAY", "", "", typeDEVMODE)
BitBlt Picture1.hdc, 0, 0, Screen.Width, Screen.Height, hdcs, 0, 0, &HCC0020
Picture1.Refresh
Debug.Print GetPixel(Picture1.hdc, typePOINTAPI.x, typePOINTAPI.y)
In questo modo non fai altro che copiare l'area dello schermo visibile nella picturebox e poi usi la
sua HDc, ma le coordinate sono quelle attuali del mouse...
Poi, per convertire in RGB il valore Long che ottieni:
Tratto da MSVBSite:
Dim R As Byte, G As Byte, B As Byte
R = (Colore \ 65535) And 255
G = (Colore \ 255) And 255
B = Colore And 255
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.morenosoft.com/MSVBSite/
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------


Me.hDC (where Me=Form1, per esempio) non ti piaceva? :-)
Ciao,
Alessandro

Me.hDC (where Me=Form1, per esempio) non ti piaceva? :-)
Certo, ma poiché la picture box, o meglio, poiché la finestra che riceverà la copia dell'immagine
del desktop, deve essere delle di mensioni di quest'ultimo, una picturebox la puoi rendere 1280x1024
pixel e nasconderla, la form corrente... beh. può non essere piacevole... ;-)))


Quando leggo queste cose mi viene da piangere!
Ma no, per così poco... :)
Usa la proprietà hDC dell'oggetto.
Se hDC non è esposta usa le api GetDC() (per la client area) o GetWindowDC()
(per l'intera finestra), ricordandoti di rilasciare la risorsa appena puoi
con ReleaseDC().
Ciao


Mmm... Gia' in effetti non avevo pensato a questo trascurabile particolare
:P
Ciao,
Alessandro


 Usa la proprietà hDC dell'oggetto. [...]
--
Ciao.
Maurizio
--------
?SPQR(C)
 X


---------------------------------------------------------------------------
Type DEVMODE
  dmDeviceName As String * 32
  dmSpecVersion As Integer
  dmDriverVersion As Integer
  dmSize As Integer
  dmDriverExtra As Integer
  dmFields As Long
  dmOrientation As Integer
  dmPaperSize As Integer
  dmPaperLength As Integer
  dmPaperWidth As Integer
  dmScale As Integer
  dmCopies As Integer
  dmDefaultSource As Integer
  dmPrintQuality As Integer
  dmColor As Integer
  dmDuplex As Integer
  dmYResolution As Integer
  dmTTOption As Integer
  dmUnusedPadding As Integer
  dmCollate As Integer
  dmFormName As String * 32
  dmBitsPerPixel As Integer
  dmPelsWidth As Long
  dmPelsHeight As Long
  dmDisplayFlags As Long
  dmDisplayFrequency As Long
  ' The following only appear in Windows 95, 98, 2000
  dmICMMethod As Long
  dmICMIntent As Long
  dmMediaType As Long
  dmDitherType As Long
  dmReserved1 As Long
  dmReserved2 As Long
  ' The following only appear in Windows 2000
  dmPanningWidth As Long
  dmPanningHeight As Long
End Type
---------------------------------------------------------------------------