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.893 mal aufgerufen. |
Neu! sevCommand 4.0 Professionelle Schaltflächen im modernen Design! Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Buchempfehlung Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||||
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. |