Rubrik: Grafik und Font · Grafische Effekte | VB-Versionen: VB5, VB6 | 04.07.02 |
Kacheln von Bildern (Wallpaper-Effekt) Mit relativ wenig Aufwand lässt sich ein Bild über die gesamte Fläche eines Hintergrund-Objekts kacheln (z.B. Form) | ||
Autor: Dieter Otter | Bewertung: | Views: 14.959 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Form-Hintergrundbilder sind eine feine Sache Hierzu braucht man der Form ja lediglich ein entsprechendes Background-Picture zuordnen (Eigenschaft "Picture").
Nachteil eines solchen Hintergrundbildes: Wird die Form vergrößert, erscheint plötzlich wieder das triste Grau der Form, oder ist das Bild kleiner als die Fenstergröße, wird der Fenster-Hintergrund ebenfalls nicht vollständig mit dem Bild ausgefüllt.
Lösung: Das Bild muss gekachelt werden, d.h. das Bild soll so oft neben- und untereinander angezeigt werden, bis das gesamte Fenster mit dem Bild "ausgemalt" ist.
Und wie das geht, das verrät Ihnen nachfolgender Tipp:
' Bild kacheln Public Sub ShowWallpaper(Container As Object, _ pPicture As StdPicture) Dim x As Long Dim y As Long Dim nWidth As Long Dim nHeight As Long With Container ' Bildgröße ermitteln nWidth = .ScaleX(pPicture.Width, 8, .ScaleMode) nHeight = .ScaleY(pPicture.Height, 8, .ScaleMode) ' Altes Wallpaper löschen .AutoRedraw = True .Cls ' Jetzt Bild kacheln For x = 0 To .ScaleWidth Step nWidth For y = 0 To .ScaleHeight Step nHeight .PaintPicture pPicture, x, y Next y Next x .Picture = .Image .AutoRedraw = False End With End Sub
Aufrufn der Funktion:
Private Sub Form_Resize() If Not Me.WindowState = vbMinimized Then ShowWallpaper Me, LoadPicture("c:\bilder\Background.bmp") End If End Sub
Selbstverständlich lässt sich die Funktion ShowWallpaper nicht nur auf Forms anwenden - nein: auch PictureBox-Control bleiben nicht verschont