Wie man Formen mit runden Ecken erstellt, haben wir bereits mehrfach beschrieben. Heute möchten wir Ihnen zeigen, wie man die Ecken des WebBrowser-Controls abrunden kann. Die Schwierigkeit besteht hierbei eindeutig beim Ermitteln des Fensterhandles des WebBrowser-Controls, was ab sofort aber mit nachfolgender Funktion kein Problem mehr sein sollte. Option Explicit ' Benötigte API-Deklarationen Private Declare Function GetClassName Lib "user32" _ Alias "GetClassNameA" ( _ ByVal hWnd As Long, _ ByVal lpClassName As String, _ ByVal nMaxCount As Long) As Long Private Declare Function GetWindow Lib "user32" ( _ ByVal hWnd As Long, _ ByVal wCmd As Long) As Long Private Const GW_HWNDNEXT = 2 Private Const GW_CHILD = 5 ' Ermittelt das Fensterhandle des WebBrowser-Controls ' ' Erwartet wird zunächst das Handle der Form, auf dem ' sich das WebBrowser-Control befindet Public Function GetWebBrowserHWnd( _ ByVal hWndMain As Long) As Long Dim hWnd As Long Dim sClassName As String Dim nResult As Long ' Alle Child-Windows der MainForm durchlaufen und ' nach dem Klassennamen "Shell Embedding" suchen ' Wenn wir einen solchen Klassennamen finden, ' haben wir das gesuchte Fensterhandle. hWnd = GetWindow(hWndMain, GW_CHILD) Do While hWnd <> 0 ' Klassennamen ermitteln... sClassName = Space$(256) nResult = GetClassName(hWnd, sClassName, Len(sClassName)) ' ... und prüfen... sClassName = Left$(sClassName, nResult) If sClassName = "Shell Embedding" Then ' ... und gefunden GetWebBrowserHWnd = hWnd Exit Do End If ' Nächstes Child-Window ermitteln hWnd = GetWindow(hWnd, GW_HWNDNEXT) Loop End Function Hat man erst einmal das Fensterhandle des WebBrowser-Control lassen sich die Ecken ganz einfach abrufen ' Benötigte API-Deklarationen Private Declare Function CreateRoundRectRgn Lib "gdi32" ( _ ByVal X1 As Long, _ ByVal Y1 As Long, _ ByVal X2 As Long, _ ByVal Y2 As Long, _ ByVal X3 As Long, _ ByVal Y3 As Long) As Long Private Declare Function SetWindowRgn Lib "user32" ( _ ByVal hWnd As Long, _ ByVal hRgn As Long, _ ByVal bRedraw As Boolean) As Long Private Sub Form_Load() Dim x As Long Dim y As Long Dim n As Long Dim nHWnd As Long ' WindowHandle des WebBrowser-Controls nHWnd = GetWebBrowserHWnd(Me.hWnd) ' Ecken abrunden With WebBrowser1 x = .Width / Screen.TwipsPerPixelX y = .Height / Screen.TwipsPerPixelY ' Legt die Stärke der Rundung fest n = 20 SetWindowRgn nHWnd, _ CreateRoundRectRgn(0, 0, x, y, n, n), True End With End Sub Anmerkung: Dieser Tipp wurde bereits 12.814 mal aufgerufen.
Anzeige
![]() ![]() ![]() (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevOutBar 4.0 ![]() Vertikale Menüleisten á la Outlook Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Tipp des Monats TOP Entwickler-Paket ![]() TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.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. |