Tipp 0299 Bereiche mit Farbe ausfüllen
Autor/Einsender:
Datum:
  Kilian Meyer
04.01.2003
Entwicklungsumgebung:   VB 5
Mit Hilfe der API-Funktionen CreateSolidBrush und ExtFloodFill ist es mit relativ wenig Code möglich, geschlossene Formen, wie z.B. Kreise, Rechtecke, usw. mit einer beliebigen, vorher ausgewählten Farbe auszufüllen. Weist die auszufüllende Umrandung Unterbrechungen auf, fließt die Farbe in die Umgebung aus.
 
Option Explicit

Private Declare Function CreateSolidBrush Lib "gdi32" ( _
      ByVal crColor As Long) As Long

Private Declare Function SelectObject Lib "gdi32" (ByVal _
      hdc As Long, ByVal hObject As Long) As Long

Private Declare Function DeleteObject Lib "gdi32" (ByVal _
      hObject As Long) As Long

Private Declare Function ExtFloodFill Lib "gdi32" (ByVal _
      hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal _
      crColor As Long, ByVal wFillType As Long) As Long

Private Const FLOODFILLSURFACE = 1

Private Sub picImage_MouseDown(Button As Integer, _
      Shift As Integer, X As Single, Y As Single)

  Dim hBrush As Long

  hBrush = CreateSolidBrush(picAuswahl.BackColor)
  With picImage
    SelectObject .hdc, hBrush
    ExtFloodFill .hdc, X, Y, .Point(X, Y), FLOODFILLSURFACE
    DeleteObject hBrush
  End With
End Sub

Private Sub picFarben_MouseDown(Button As Integer, _
      Shift As Integer, X As Single, Y As Single)

  picAuswahl.BackColor = picFarben.Point(X, Y)
End Sub

Private Sub picFarben_MouseMove(Button As Integer, _
      Shift As Integer, X As Single, Y As Single)

  On Error Resume Next
  picVorschau.BackColor = picFarben.Point(X, Y)
End Sub
 
Weitere Links zum Thema
Objekte zeichnen und verschieben
Polygone zeichnen

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
VB-Version
VBA 5
VBA 6
VB 4/16
VB 4/32
VB 5
VB 6


Download  (7,7 kB) Downloads bisher: [ 1548 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Montag, 12. September 2011