FloodFill: Unterschied zwischen den Versionen

Aus API-Wiki
Wechseln zu: Navigation, Suche
 
(12 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Die Funktion [[FloodFill]] dient dazu, eine Form, welche sich im angegebenen ''DC'' befindet, zu füllen.  
+
{{Infobox|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.}}
  
<code vb>
+
__NOTOC__
 +
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">
 
Private Declare Function FloodFill Lib "gdi32" ( _
 
Private Declare Function FloodFill Lib "gdi32" ( _
 
                                   ByVal hdc As Long, _
 
                                   ByVal hdc As Long, _
Zeile 8: Zeile 11:
 
                                   ByVal crColor As Long _
 
                                   ByVal crColor As Long _
 
                                   ) As Long
 
                                   ) As Long
</code>
+
</syntaxhighlight>
  
 
==Parameter==
 
==Parameter==
  
 
''hdc''
 
''hdc''
:Erwartet ein DC. Dies kann entweder ein bestehendes DC sein, beispielsweise das einer Picturebox, oder per [[CreateCompatibleDC]] erstell worden sein.
+
:Erwartet einen DC. Dies kann entweder ein bestehender DC sein, beispielsweise der einer Picturebox, oder per [[CreateCompatibleDC]] erstellt worden sein.
  
 
''x''
 
''x''
Zeile 30: 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 36: 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==
  
Die [[FloodFill]]-Funktion benötigt für die Füllung einen Brush. Dieser muss vorher mittels erstellt worden sein.
+
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 ==
 
== Verwandte Funktionen ==
Zeile 47: Zeile 50:
 
[[CreatePen]] - Erstellt ein Penobjekt<br>
 
[[CreatePen]] - Erstellt ein Penobjekt<br>
 
[[CreatePenIndirect]] - Erstellt ein Penobjekt indirekt<br>
 
[[CreatePenIndirect]] - Erstellt ein Penobjekt indirekt<br>
 +
[[ExtFloodFill]] - Erweiterte Füllmethode<br>
 
[[FillPath]] - Füllt ein Pfadobjekt<br>
 
[[FillPath]] - Füllt ein Pfadobjekt<br>
 
[[FillRect]] - Füllt ein Rechteck<br>
 
[[FillRect]] - Füllt ein Rechteck<br>
[[FillRgn] - Füllt ein beispielsweise mittels [[CreateRectRgn]] erstelltes Region-Objekt.<br>
+
[[FillRgn]] - Füllt ein beispielsweise mittels [[CreateRectRgn]] erstelltes Region-Objekt.<br>
 +
[[GetStockObject]] - Wählt ein vordefiniertes Objek, z.B. eine vordefinierten Brush zur Füllung aus.
  
 
== Quellen ==
 
== Quellen ==
Zeile 56: Zeile 61:
  
  
 +
[[Kategorie:Funktionen]]
 +
[[Kategorie:GDI]]
 
[[Kategorie:Grafik]]
 
[[Kategorie:Grafik]]
[[Kategorie:GDI]]
+
[[Kategorie:Pixelgrafik]]

Aktuelle Version vom 7. Oktober 2016, 22: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