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 7.380 mal aufgerufen.
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv (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. |
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 :-) Tipp des Monats Dietrich Herrmann Einsatz einer DimmingForm Es wird eine Form vorgestellt, mit deren Hilfe man den gesamten Bildschirm auf verschiedene Arten mit transparenter Farbe überdecken und nur eine eigene Form im Vordergrund zeigen kann. vb@rchiv CD Vol.6 ![]() Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. |
||||||||||||||||
|
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. |
|||||||||||||||||



WebBrowser mit abgerundeten Ecken



