Wenn Sie eine beliebige Farbinformation zum Beispiel aus einem Bild oder einer
anderen Anwendung verwenden wollen so müssen Sie diese zuerst ermitteln.
Dies ist mit Visual Basic Bordmitteln leider nicht möglich, doch unter Zuhilfenahme
der Windows-API stellt diese Aufgabe kein größeres Problem dar. Dieses
Beispiel zeigt wie es genau funktioniert.
' VISUAL BASIC WORLD' ===========================================' Das große Portal zum Thema Visual Basic.'' Wenn Ihnen dieser Source Code gefallen hat,' dann empfehlen Sie Visual Basic World bitte' weiter und/oder setzen Sie einen Link auf:'' http://www.visualbasicworld.de/'' Vernetzen Sie sich mit uns:'' http://twitter.com/visualbasicwrld OptionExplicitPrivateDeclareFunction GetCursorPos Lib "user32" _
(lpPoint As POINTAPI) AsLongPrivateDeclareFunction GetDC Lib "user32" _
(ByVal hwnd AsLong) AsLongPrivateDeclareFunction GetPixel Lib "gdi32" _
(ByVal hDC AsLong, ByVal X AsLong, ByVal Y AsLong) AsLongPrivateDeclareFunction ReleaseDC Lib "user32" _
(ByVal hwnd AsLong, ByVal hDC AsLong) AsLongPrivateType POINTAPI
X AsLong
Y AsLongEndTypePrivate Position As POINTAPI
Private Farbe AsLongPrivate lnghDC AsLongPrivateSub Timer_Timer()
GetCursorPos Position
'Ermittelt die Cursorposition (x-/y-Koordinaten).
Farbe = GetPixelColor(Position.X, Position.Y)
lblRot.Caption = "Rot: " & (Farbe And &HFF&)
lblGrün.Caption = "Grün: " & (Farbe \ &H100& And &HFF&)
lblBlau.Caption = "Blau: " & (Farbe \ &H10000 And &HFF&)
lblHex = "Hex: " & Hex(Farbe)
'Mit der Visual Basic Funktion "Hex" wird der ermittelt'Farbwert in Hexadezimalschreibweise angezeigt.
lblPosition = "Position: " & Position.X & " x " & Position.Y
picFarbe.BackColor = Farbe
'Der PictureBox wird die ermittelte Farbe zugewiesen.EndSubPrivateFunction GetPixelColor(ByVal X AsLong, ByVal Y AsLong) AsLong
lnghDC = GetDC(0)
'Um den Gerätekontext des gesamten Screens zu bekommen'einfach eine 0 übergeben.
GetPixelColor = GetPixel(lnghDC, X, Y)
'Diese API-Funktion übernimmt alles Übriege und liefert'uns den entsprechenden Farbwert.
ReleaseDC 0, lnghDC
EndFunction