vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Grafik & Zeichnen22.03.05
FillRgn-Funktion

Diese Funktion füllt eine Region mit einem übergebenen Brush.

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

Deklaration:

Declare Function FillRgn Lib "gdi32.dll" ( _
  ByVal hdc As Long, _
  ByVal hRgn As Long, _
  ByVal hBrush As Long) As Long

Beschreibung:
Diese Funktion füllt eine Region mit einem übergebenen Brush.

Parameter:
hdcErwartet den Devicekontext des Gerätes, das die Region besitzt.
hRgnErwartet das Handle der Region, die gefüllt werden soll.
hBrushErwartet das Handle eines Brush's, mit dem der Inhalt der Region gefüllt werden soll.

Rückgabewert:
Ist die Funktion erfolgreich, so liefert die Funktion einen Wert "ungleich 0", andernfalls wird derWert "0" zurückgegeben.

Beispiel:

Private Declare Function CreateEllipticRgn Lib "gdi32.dll" ( _
  ByVal X1 As Long, _
  ByVal Y1 As Long, _
  ByVal X2 As Long, _
  ByVal Y2 As Long) As Long
Private Declare Function DeleteObject Lib "gdi32.dll" ( _
  ByVal hObject As Long) As Long
Private Declare Function CreateRectRgn Lib "gdi32.dll" ( _
  ByVal X1 As Long, _
   ByVal Y1 As Long, _
  ByVal X2 As Long, _
  ByVal Y2 As Long) As Long
Private Declare Function CombineRgn Lib "gdi32" ( _
  ByVal hDestRgn As Long, _
   ByVal hSrcRgn1 As Long, _
  ByVal hSrcRgn2 As Long, _
  ByVal nCombineMode As Long)  As Long
Private Declare Function FrameRgn Lib "gdi32.dll" ( _
  ByVal hdc As Long, _
  ByVal hRgn As Long, _
  ByVal hBrush As Long, _
  ByVal nWidth As Long, _
  ByVal nHeight As Long) As Long
Private Declare Function CreateHatchBrush Lib "gdi32.dll" ( _
  ByVal nIndex As Long, _
  ByVal crColor As Long) As Long
Private Declare Function FillRgn Lib "gdi32.dll" ( _
  ByVal hdc As Long, _
  ByVal hRgn As Long, _
  ByVal hBrush As Long) As Long
Private Declare Function InvertRgn Lib "gdi32.dll" ( _
  ByVal hdc As Long, _
   ByVal hRgn As Long) As Long
 
' CombineRgn nCombineMode-Konstanten
Private Const RGN_AND = 1 ' Die kombinierte Region soll eine überlappende  
' Region der beiden Quellregionen sein
Private Const RGN_OR = 2 ' Die kombinierte Region soll der Gesamtbereich der  
' beiden Regionen inklusive überlappendem Bereich sein
Private Const RGN_XOR = 3 ' Die kombinierte Region soll der Gesamtbereich  
' der beiden Regionen exklusive überlappendem Bereich sein
Private Const RGN_DIFF = 4 ' Die kombinierte Region soll der Gesamtbereich  
' der hSrcRgn1 sein inklusive des Bereiches der Region die von hSrcRgn2 überlappt 
Private Const RGN_COPY = 5 ' Die kombinierte Region soll der Gesamtbereich  
' der hSrcRgn2 sein, inklusive des Bereiches der Region die von hSrcRgn1 überlappt 
 
' CombineRgn Rückgabe-Konstanten
Private Const ERROR = 0 ' Ein Fehler ist aufgetreten
Private Const NULLREGION = 1 ' Die kombinierte Region ist leer
Private Const SIMPLEREGION = 2  ' Die kombinierte Region ist eine rechteckige  _
' (simple) Region
Private Const COMPLEXREGION = 3 ' Die kombinierte Region ist eine komplexe Region 
 
' CreateHatchBrush nIndex-Konstanten
Private Const HS_BDIAGONAL = 3
Private Const HS_CROSS = 4
Private Const HS_DIAGCROSS = 5
Private Const HS_FDIAGONAL = 2
Private Const HS_HORIZONTAL = 0
Private Const HS_VERTICAL = 1
 
Private hRgn1 As Long, hRgn2 As Long, hRgn3 As Long
Private hBrush As Long
' 2 Regionen kombinieren und invertieren
Private Sub Form_Load()
  Dim Retval As Long
 
  ' Autoredraw auf True stellen
  Me.AutoRedraw = True
 
  ' Brush erstellen
  hBrush = CreateHatchBrush(HS_DIAGCROSS, RGB(0, 255, 0))
 
  ' Elliptische Region erstellen
  hRgn1 = CreateEllipticRgn(20, 30, 150, 110)  ' bounding rectangle (20,30)-(150,110) 
 
  ' daneben eine rechteckige Region erstellen
  hRgn2 = CreateRectRgn(150, 30, 200, 110)
 
  ' Eine dritte "leere" Region erstellen
  hRgn3 = CreateRectRgn(0, 0, 0, 0)
 
  ' Kombinieren der beiden Regionen (Körper) zu einer Region
  CombineRgn hRgn3, hRgn1, hRgn2, RGN_XOR
 
  ' Kombinierte Region mit dem Brush füllen
  FillRgn Me.hdc, hRgn3, hBrush
 
  ' Invertieren der kombinierten Region
  InvertRgn Me.hdc, hRgn3
 
  ' Rahmen mit dem Pen um die kombinierte Region zeichnen
  FrameRgn Me.hdc, hRgn3, hBrush, 5, 10
End Sub
' Ressourcen befreien
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  Dim Retval As Long
 
  ' Löschen des Brushs
  DeleteObject hBrush
 
  ' Löschen der erstellten Regionen
  DeleteObject hRgn1
  DeleteObject hRgn2
  DeleteObject hRgn3
End Sub

Diese Seite wurde bereits 7.591 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