FloodFill: Unterschied zwischen den Versionen

Aus API-Wiki
Wechseln zu: Navigation, Suche
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.  
  
<syntaxhighlight lang="vb">
+
<syntaxhighlight lang="<syntaxhighlight lang="vb">">
 
Private Declare Function FloodFill Lib "gdi32" ( _
 
Private Declare Function FloodFill Lib "gdi32" ( _
 
                                   ByVal hdc As Long, _
 
                                   ByVal hdc As Long, _
Zeile 33: Zeile 33:
 
==Beispiel==
 
==Beispiel==
  
<syntaxhighlight lang="vb">
+
<syntaxhighlight lang="<syntaxhighlight lang="vb">">
If FloodFill(Picture1.hdc, 100, 100, vbBlack) <> 0 Then
+
If FloodFill(Picture1.hdc, 100, 100, <syntaxhighlight lang="vb">Black) <> 0 Then
 
     Picture1.Refresh
 
     Picture1.Refresh
 
Else
 
Else
     Call MsgBox("Der angegebene Bereich konnte nicht gefüllt werden.", vbExclamation + vbOkOnly, "Fehler")
+
     Call MsgBox("Der angegebene Bereich konnte nicht gefüllt werden.", <syntaxhighlight lang="vb">Exclamation + <syntaxhighlight lang="vb">OkOnly, "Fehler")
 
End if
 
End if
 
</syntaxhighlight>
 
</syntaxhighlight>

Version vom 5. November 2016, 23:10 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, <syntaxhighlight lang="vb">Black) <> 0 Then
    Picture1.Refresh
Else
    Call MsgBox("Der angegebene Bereich konnte nicht gefüllt werden.", <syntaxhighlight lang="vb">Exclamation + <syntaxhighlight lang="vb">OkOnly, "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