Rubrik: Grafik und Font · Grafische Effekte | VB-Versionen: VB6 | 21.11.13 |
Bild in Picturebox mit gerundeten Ecken anzeigen Der Code zeigt ein in eine Picturebox geladenes Bild mit gerundeten Ecken an. Optional kann noch der Radius der Ecken übergeben werden. | ||
Autor: Zardoz | Bewertung: | Views: 9.570 |
ohne Homepage | System: Win8, Win10, Win11 | Beispielprojekt auf CD |
Mit diesem kleinen Code lässt sich eine PictureBox mit abgerundeten Ecken anzeigen. Der Radius kann hierbei frei festgelegt werden.
Platzieren Sie auf eine Form eine PictureBox (Picture1), sowie einen Button (Command1) und fügen nachfolgende Code in den Codeteil der Form ein.
Option Explicit ' Benötigte API-Deklarationen Private Declare Function SetWindowRgn Lib "user32" ( _ ByVal hwnd As Long, _ ByVal hRgn As Long, _ ByVal bRedraw As Boolean) As Long 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 Sub Form_Load() ' Bild laden + anzeigen Dim Pfad As String Pfad = "C:\EinBild.jpeg" ' Bildpfad hier einsezten With Picture1 .BorderStyle = vbBSNone .AutoSize = True Set .Picture = LoadPicture(Pfad) End With Me.WindowState = vbMaximized End Sub
Private Sub Command1_Click() ' Bild (PictureBox) mit abgerundeten Ecken darstellen Call RoundRectPictureBox(Picture1) End Sub
Private Sub RoundRectPictureBox(DestPicture As PictureBox, _ Optional Radius As Long = 60) ' Picturebox mit runden Ecken erzeugen Dim Rgn1 As Long With DestPicture ' Region mit runden Ecken generieren .ScaleMode = vbPixels Rgn1 = CreateRoundRectRgn(0, 0, .ScaleWidth, .ScaleHeight, Radius, Radius) ' Region übergeben und Picturebox neuzeichnen Call SetWindowRgn(.hwnd, Rgn1, True) End With ' Anmerkung: Die Region muss, in diesem Fall, nicht gelöscht werden End Sub