FloodFill: Unterschied zwischen den Versionen

Aus API-Wiki
Wechseln zu: Navigation, Suche
 
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt)
Zeile 4: Zeile 4:
 
Die Funktion [[FloodFill]] dient dazu, eine geschlossene Figur (Polygonzug) mit der aktuellen Füllfarbe, bzw. der gewählten Brush zu füllen.  
 
Die Funktion [[FloodFill]] dient dazu, eine geschlossene Figur (Polygonzug) mit der aktuellen Füllfarbe, bzw. der gewählten Brush zu füllen.  
  
<code vb>
+
<syntaxhighlight lang="vb">
 
Private Declare Function FloodFill Lib "gdi32" ( _
 
Private Declare Function FloodFill Lib "gdi32" ( _
 
                                   ByVal hdc As Long, _
 
                                   ByVal hdc As Long, _
Zeile 11: Zeile 11:
 
                                   ByVal crColor As Long _
 
                                   ByVal crColor As Long _
 
                                   ) As Long
 
                                   ) As Long
</code>
+
</syntaxhighlight>
  
 
==Parameter==
 
==Parameter==
Zeile 33: Zeile 33:
 
==Beispiel==
 
==Beispiel==
  
<code vb>
+
<syntaxhighlight lang="vb">
 
If FloodFill(Picture1.hdc, 100, 100, vbBlack) <> 0 Then
 
If FloodFill(Picture1.hdc, 100, 100, vbBlack) <> 0 Then
 
     Picture1.Refresh
 
     Picture1.Refresh
Zeile 39: Zeile 39:
 
     Call MsgBox("Der angegebene Bereich konnte nicht gefüllt werden.", vbExclamation + vbOkOnly, "Fehler")
 
     Call MsgBox("Der angegebene Bereich konnte nicht gefüllt werden.", vbExclamation + vbOkOnly, "Fehler")
 
End if
 
End if
</code>
+
</syntaxhighlight>
  
 
==Hinweise==
 
==Hinweise==
Zeile 61: Zeile 61:
  
  
 +
[[Kategorie:Funktionen]]
 +
[[Kategorie:GDI]]
 +
[[Kategorie:Grafik]]
 
[[Kategorie:Pixelgrafik]]
 
[[Kategorie:Pixelgrafik]]
[[Kategorie:GDI]]
 
[[Kategorie:Funktionen]]
 

Aktuelle Version vom 7. Oktober 2016, 21:22 Uhr

Messagebox info.png Diese API-Funktion ist nur noch aus Kompatibilitätsgründen enthalten und sollte laut Empfehlung von Microsoft von neuen Programmen nicht mehr verwendet werden. Stattdessen wird ExtFloodFill empfohlen.
Jedoch funktioniert die Funktion auch in aktuellen Windows-Versionen noch einwandfrei.


Die Funktion FloodFill dient dazu, eine geschlossene Figur (Polygonzug) mit der aktuellen Füllfarbe, bzw. der gewählten Brush zu füllen.

Private Declare Function FloodFill Lib "gdi32" ( _
                                   ByVal hdc As Long, _
                                   ByVal x As Long, _
                                   ByVal y As Long, _
                                   ByVal crColor As Long _
                                   ) As Long

Parameter

hdc

Erwartet einen DC. Dies kann entweder ein bestehender DC sein, beispielsweise der einer Picturebox, oder per CreateCompatibleDC erstellt worden sein.

x

Die x-Koordinate, von welcher aus die Füllung beginnen soll.

y

Die y-Koordinate, von welcher aus die Füllung beginnen soll.

crColor

Erwartet einen Farbwert, der die farbliche Grenze für die Füllung angibt.

Rückgabe

Bei Erfolg wird ein Wert ungleich 0 zurückgegeben.

Beispiel

If FloodFill(Picture1.hdc, 100, 100, vbBlack) <> 0 Then
    Picture1.Refresh
Else
    Call MsgBox("Der angegebene Bereich konnte nicht gefüllt werden.", vbExclamation + vbOkOnly, "Fehler")
End if

Hinweise

Die FloodFill-Funktion benötigt für die Füllung eine sogenannte Brush. Diese muss vorher mittels CreateBrush erstellt worden sein. Bei Anwendung auf eine Picturebox oder Form, muss die Brush nicht mittels API-Methoden selbst erstellt werden. Es kann die im Control eingestellte Füllfarbe eingesetzt werden.

Verwandte Funktionen

CreateBrushIndirect - Erstellt ein Brushobjekt
CreatePen - Erstellt ein Penobjekt
CreatePenIndirect - Erstellt ein Penobjekt indirekt
ExtFloodFill - Erweiterte Füllmethode
FillPath - Füllt ein Pfadobjekt
FillRect - Füllt ein Rechteck
FillRgn - Füllt ein beispielsweise mittels CreateRectRgn erstelltes Region-Objekt.
GetStockObject - Wählt ein vordefiniertes Objek, z.B. eine vordefinierten Brush zur Füllung aus.

Quellen

MSDN US-Libary