Deklaration: Declare Function CombineRgn Lib "gdi32.dll" ( _ ByVal hDestRgn As Long, _ ByVal hSrcRgn1 As Long, _ ByVal hSrcRgn2 As Long, _ ByVal nCombineMode As Long) As Long Beschreibung: Parameter:
nCombineMode Konstanten: Const RGN_AND = 1 ' Die kombinierte Region soll eine überlappende Region der beiden Quellregionen sein Const RGN_OR = 2 ' Die kombinierte Region soll der Gesamtbereich der beiden Regionen inklusive überlappendem Bereich sein Const RGN_XOR = 3 ' Die kombinierte Region soll der Gesamtbereich der beiden Regionen exklusive überlappendem Bereich sein Const RGN_DIFF = 4 ' Die kombinierte Region soll der Gesamtbereich der hSrcRgn1 sein, inklusive des Bereiches der Region die von hSrcRgn2 überlappt wird Const RGN_COPY = 5 ' Die kombinierte Region soll der Gesamtbereich der hSrcRgn2 sein, inklusive des Bereiches der Region die von hSrcRgn1 überlappt wird Rückgabewert: Rückgabekonstanten: Const ERROR = 0 ' Ein Fehler ist aufgetreten Const NULLREGION = 1 ' Die kombinierte Region ist leer Const SIMPLEREGION = 2 ' Die kombinierte Region ist eine rechteckige (simple) Region Const COMPLEXREGION = 3 ' Die kombinierte Region ist eine komplexe Region 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 wird Private Const RGN_COPY = 5 ' Die kombinierte Region soll der Gesamtbereich _ ' der hSrcRgn2 sein, inklusive des Bereiches der Region die von hSrcRgn1 überlappt wird ' 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 freigeben 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 8.726 mal aufgerufen. |
sevWizard für VB5/6 ![]() Professionelle Assistenten im Handumdrehen Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Buchempfehlung Tipp des Monats ![]() Dieter Otter ListBox-Eintrag setzen ohne SelectedIndexChanged-Ereignis Wie man einen ListBox-Eintrag per Code auswählt, ohne dass autom. das SelectedIndexChanged-Ereignis ausgelöst wird, zeigt dieser Tipp. TOP Entwickler-Paket ![]() TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||||
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. |