vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 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
CreateRectRgn-Funktion

Diese Funktion erstellt eine rechteckige Region und gibt das Handle zu dieser zurück.

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

Deklaration:

Declare Function CreateRectRgn Lib "gdi32.dll" ( _
  ByVal X1 As Long, _
  ByVal Y1  As Long, _
  ByVal X2 As Long, _
  ByVal Y2 As Long) As Long

Beschreibung:
Diese Funktion erstellt eine rechteckige Region und gibt das Handle zu dieser zurück.

Parameter:
X1Erwartet die obere horizontale Koordinate des Rechtecks.
Y1Erwartet die obere vertikale Koordinate des Rechtecks.
X2Erwartet die untere horizontale Koordinate des Rechtecks.
Y2Erwartet die untere vertikale Koordinate des Rechtecks.

Rückgabewert:
Ist die Funktion erfolgreich, so liefert sie das Handle der neu erstellten Region, 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
 
' 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, 3
 
  ' Kombinierte Region mit dem Brush füllen
  FillRgn Me.hdc, hRgn3, hBrush
 
  ' Invertieren der kombnierten 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 9.209 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