Rubrik: Fenster & Forms | 15.10.02 |
Forms mit abgerundeten Ecken VB-Version: VB5, VB6 | ||
Views: 13.685 |
Sie finden rechteckige Fenster langweilig? Sie möchten vielleicht denBegrüßungsbildschirm mit abgerundeten Ecken haben? Nehmen Sie eine Form, setzen Sie BorderStyle auf 0 - Kein und ScaleMode auf 3 - Pixel. Außerdembenötigen Sie für dieses Experiment noch zwei CommandButtons. Dann vielleichtnoch eine andere Hintergrundfarbe auswählen und folgenden Code verwenden:
Option Explicit ' zunächst die benötigten 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() ' Command2 deaktivieren Command2.Enabled = False End Sub ' Ecken abrunden Dim x As Long Private Sub Command1_Click() Dim Y As Long Dim n As Long x = Me.Width / Screen.TwipsPerPixelX Y = Me.Height / Screen.TwipsPerPixelY ' hier wird der Rundungsgrad der Ecken vorgegeben n = 120 SetWindowRgn Me.hwnd, CreateRoundRectRgn(0, 0, x, Y, n, n), True ' Command1 deaktivieren Command1.Enabled = False ' Command2 aktivieren Command2.Enabled = True End Sub ' Fenster normal "eckig" darstellen Private Sub Command2_Click() Dim x As Long Dim Y As Long Dim n As Long x = Me.Width / Screen.TwipsPerPixelX Y = Me.Height / Screen.TwipsPerPixelY ' hier wird der Rundungsgrad der Ecken vorgegeben, ' in diesem Fall: keine n = 0 SetWindowRgn Me.hwnd, CreateRoundRectRgn(0, 0, x, Y, n, n), True ' Command1 aktivieren Command1.Enabled = True ' Command2 deaktivieren Command2.Enabled = False End Sub
So - das war's auch schon. Wenn Sie noch mehr über "runde Ecken" erfahren möchten, schauen Sie sich doch einmal unseren Workshop Runde Fenster? Wie geht denn das? an.