vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Grafik & Zeichnen15.03.02
ExtFloodFill-Funktion

Diese Funktion füllt einen begrenzten Bereich mit dem Brush des Devices aus.

Betriebssystem:  Win95, Win98, WinNT 3.1, Win2000, WinMEViews:  9.511 

Deklaration:

Declare Function ExtFloodFill Lib "gdi32.dll" ( _
  ByVal hdc As Long, _
  ByValnXStart As Long, _
  ByVal nYStart As Long, _
  ByVal crColor As Long, _
  ByVal fuFillType As Long) As Long


Beschreibung:

Diese Funktion füllt einen begrenzten Bereich mit dem Brush des Devices aus.


Parameter:

hdcErwartet den Device-Kontext des Gerätes, das mit der Farbe gefüllt werden soll.
nXStartErwartet die horizontale Koordinate ander das Füllen der Farbe beginnen soll. Das Füllen der Farbe geschieht in alle Richtungen.
nYStartErwartet die vertikale Koordinate ander das Füllen der Farbe beginnen soll. Das Füllen der Farbe geschieht in alle Richtungen.
crColorErwartet eine RGB-Farbedie die Farbe festlegt, mit der gefüllt werden soll.
fuFillTypeErwartet eine fFillType-Konstante die beschreibt, welcheBereiche des Gerätes gefüllt werden sollen.


fuFillType Konstanten:

 
Const FLOODFILLBORDER = 0
' Füllt von der angegebenen Position bis zu der angegebenen Farbe "crColor" mit dem aktuell 
' gewählten Brush. Diese Methode füllt keine Bereiche, die mit "crColor" umschlossen sind.
 
Const FLOODFILLSURFACE = 1
' Überschreibt die Farbe "crColor" mit dem aktuell gewählten Brush


Rückgabewert:

Ist die Funktion erfolgreich, so ist die Rückgabe "ungleich 0", andernfalls wird derWert "0" zurückgegeben. Unter Windows 2000/NT können erweiterte Fehlerinformationen mittels der GetLastError-Funktion ermittelt werden.


Beispiel:

Private Declare Function CreateSolidBrush Lib "gdi32.dll" ( _
  ByVal crColor As Long)  As Long
Private Declare Function DeleteObject Lib "gdi32.dll" (ByVal hObject As Long) As Long 
Private Declare Function ExtFloodFill Lib "gdi32.dll" ( _
  ByVal hdc As Long, _
  ByVal nXStart As Long, _
  ByVal nYStart As Long, _
  ByVal crColor As Long, _
  ByVal fuFillType As Long) As Long
Private Declare Function SelectObject Lib "gdi32.dll" ( _
  ByVal hdc As Long, _
  ByVal hObject As Long) As Long
Private Declare Function RoundRect Lib "gdi32.dll" ( _
  ByVal hdc As Long, _
  ByVal nLeftRect As Long, _
  ByVal nTopRect As Long, _
  ByVal nRightRect As Long, _
  ByVal nBottomRect As Long, _
  ByVal nWidth As Long, _
  ByVal nHeight As Long) As Long
 
Private Const FLOODFILLBORDER = 0 ' Füllt von der angegebenen Position bis zu der  
' angegebenen Farbe "crColor" mit dem aktuell gewählten Brush. Diese Methode füllt 
' keine Bereiche, die mit "crColor" umschlossen sind.
Private Const FLOODFILLSURFACE = 1 ' Überschreibt die Farbe "crColor" mit dem  
' aktuell gewähltem Brush
' Form.AutoredDraw sollte True sein, damit der Fensterinhalt besser angezeigt wird.
Private Sub Form_Resize()
  Dim RetVal As Long, hBrush As Long, hOldBrush As Long, RndCol As Long
  On Error Resume Next ' Bei einem Minimieren-Ereignis tritt sonst ein Fehler auf
 
  ' Inhalt der Form löschen
  Me.Cls
 
  ' Rechteck auf der Form zeichnen
  RetVal = RoundRect(Me.hdc, Me.ScaleWidth / 3, Me.ScaleHeight / 3,  _
  Me.ScaleWidth / 3 * 2, Me.ScaleHeight / 3 * 2, 20, 20)
 
  ' Brush mit zufälliger Farbe erstellen
  Randomize Timer ' Zufallszahlen neu berechnen
  RndCol = RGB(CInt(Rnd() * 255 + 1), CInt(Rnd() * 255 + 1), CInt(Rnd() * 255 + 1)) 
  hBrush = CreateSolidBrush(RndCol)
 
  ' Brush zuweisen und alten Brush zwischenspeichern
  hOldBrush = SelectObject(Me.hdc, hBrush)
 
  ' den inneren Bereich des Rechtecks mit dem Brush der Form füllen
  RetVal = ExtFloodFill(Me.hdc, Me.ScaleWidth / 2, Me.ScaleHeight / 2, vbBlack, FLOODFILLBORDER) 
 
  ' den Orginal-Brush wiederherstellen
  RetVal = SelectObject(Me.hdc, hOldBrush)
 
  ' den angelegten Brush zerstören
  DeleteObject hBrush
End Sub

Diese Seite wurde bereits 9.511 mal aufgerufen.

nach obenzurück
 
   

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