vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Grafik und Font · Bilder und Icons   |   VB-Versionen: VB2005, VB200825.04.08
Farbe unter dem Mauszeiger zurückgeben

Das Beispiel ermöglicht die Position des Mauszeigers, sowie die Farbe des Pixels, über dem sich der Mauszeiger befindet, zurückzugeben.

Autor:   Heinz PrelleBewertung:     [ Jetzt bewerten ]Views:  13.591 
www.visual-basic5.deSystem:  WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Heute stellen wir Ihnen eine Klasse vor, mit der sich die Farbe des Bild-Pixels einer PictureBox, über dem sich der Mauszeiger befindet, zurückgeben lässt.

Erstellen Sie hierzu ein neues Windows-Forms Projekt, platzieren auf die Form eine PictureBox und weisen dieser eine beliebige Bilddatei zu. Platzieren Sie jetzt noch zwei Label-Controls unterhalb der PictureBox (Label1 und Label2).

Public Class Form1
  ''' <summary>
  ''' Farbwert unter dem Mauszeiger ermitteln
  ''' </summary>
  Public Class GetColorFromPoint
 
    ''' <summary>
    ''' Funktion zur Ermittlung der Farbe unter dem Mauszeiger
    ''' </summary>
    ''' <param name="pb">Die PictureBox mit Bild/Grafik</param>
    ''' <returns>Den ermittelten Farbwert</returns>
    Public Shared Function GetColor(ByVal pb As System.Windows.Forms.PictureBox, _
      ByVal e As System.Windows.Forms.MouseEventArgs, _
      ByRef Position As Point) As Color
 
      ' Bitmap Objekt
      Dim hBitmap As Bitmap = Nothing
 
      ' Fehlerüberwachung einschalten
      Try
        ' Variable hBitmap initialisieren
        hBitmap = New Bitmap(1, 1)
 
        ' Nutzung der Grafikklasse
        Using g As Graphics = Graphics.FromImage(hBitmap)
          With g
            ' Transfer der benötigten Daten
            .CopyFromScreen(pb.PointToScreen(e.Location), New Point(0, 0), hBitmap.Size)
            ' Wert der Position des Mauszeigers an die Variable Position übergeben
            Position = e.Location()
            ' Übergabe an die Variable Color
            Dim Color As Color = hBitmap.GetPixel(0, 0)
            ' Rückgabe des ermittelten Farbwertes
            Return Color
          End With
        End Using
      Catch ex As Exception
        ' Eventuell auftretenden Fehler abfangen und
        ' Fehlermeldung ausgeben
        MessageBox.Show(ex.Message.ToString(), "Info")
      Finally
        ' Resourcen freigeben
        If hBitmap IsNot Nothing Then hBitmap.Dispose()
      End Try
    End Function
  End Class
  Private Sub PictureBox1_MouseMove(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
 
    ' Fehlerüberwachung einschalten
    Try
      ' Positionsvariable deklarieren
      Dim p As Point = Nothing
      ' Benötigten Wert aus der Funktion GetColor holen
      Dim Color As Color = GetColorFromPoint.GetColor(PictureBox1, e, p)
      ' Farbwert zum Test an das Label als neue Hintergrundfarbe übergeben
      Label1.BackColor = Color
      ' Positionsvariable auswerten
      Label2.Text = "Position: " & p.X.ToString() & " - " & p.Y.ToString()
    Catch ex As Exception
      ' Eventuell auftretenden Fehler abfangen und
      ' Fehlermeldung ausgeben
      MessageBox.Show(ex.Message.ToString(), "Info")
    End Try
  End Sub
  Private Sub Form1_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
 
    Label1.AutoSize = False
    Label1.Width = 30
    Label1.Height = 12
  End Sub
End Class

Dieser Tipp wurde bereits 13.591 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel