Ciao, in rete ho trovato questo esempio:
codice:
Private Declare Function BitBlt Lib "Gdi32.dll" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Declare Function SelectObject Lib "Gdi32.dll" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function CreateCompatibleDC Lib "Gdi32.dll" (ByVal hdc As Long) As Long
Private Declare Function DeleteObject Lib "Gdi32.dll" (ByVal hObject As Long) As Long
Private Declare Function DeleteDC Lib "Gdi32.dll" (ByVal hdc As Long) As Long
Private Sub TileForm(frm As Form, sTilePicture As String)
Dim hTileDC As Long
Dim hBitmap As Long, hBitmapOld As Long
Dim Pic As IPicture
Dim X As Integer, Y As Integer
Dim MaxX As Integer, MaxY As Integer
Dim TileWidth As Single, TileHeight As Single
Set Pic = LoadPicture(sTilePicture)
TileWidth = frm.ScaleX(Pic.Width, vbHimetric, vbPixels)
TileHeight = frm.ScaleY(Pic.Height, vbHimetric, vbPixels)
If TileWidth = 0 Or TileHeight = 0 Then Exit Sub
hBitmap = Pic.Handle
hTileDC = CreateCompatibleDC(frm.hdc)
hBitmapOld = SelectObject(hTileDC, hBitmap)
MaxX = frm.ScaleX(frm.Width + Pic.Width, vbTwips, vbPixels)
MaxY = frm.ScaleX(frm.Height + Pic.Height, vbTwips, vbPixels)
For Y = 0 To MaxY Step TileHeight
For X = 0 To MaxX Step TileWidth
Call BitBlt(frm.hdc, X, Y, TileWidth, TileHeight, hTileDC, 0, 0, vbSrcCopy)
Next X
Next Y
Call SelectObject(hTileDC, hBitmapOld)
Call DeleteObject(hBitmap)
Call DeleteDC(hTileDC)
Set Pic = Nothing
End Sub
Private Sub Form_Paint()
'Disegna lo sfondo.
TileForm Me, App.Path & "\Sfondo.jpg"
With Me
If .Picture <> 0 Then .PaintPicture .Picture, 0, 0
End With
End Sub