Aqui dejo la forma que utilizo para realizar esta tarea.
Guiller si lo quieres colocar en tu página... (eres libre de hacerlo ;-) )
--------------------------------------------------------------------------
COLOCAR UN TAPIZ DE FONDO EN UN FORM
Por ejemplo si tenemos una aplicación con multitud de forms que queremos
ponerle un fondo BMP, haremos lo siguiente, colocamos en el formulario
principal, ya sea MDIForm o normal, un ImageList con los diferentes Bitmaps
que vamos a usar en nuestra aplicación.
(Al ImageList le he llamado Fondos, al formulario principal le he llamado
ppal)
En cada formulario que ira relleno ponemos...
Const num_fondo=2 ' Numero correspondiente a la imagen del ImageList.
Private Sub Form_Load()
PonFondo Me, num_fondo
End sub
Private Sub Form_Paint()
PonFondo Me, fondo
End Sub
Private Sub Form_Resize()
PonFondo Me, fondo
End Sub
Y en un modulo general escribimos el procedimiento....
Sub PonFondo(vForm As Object, vfondo As Integer)
' Paso los pixeles a twips
wide% = ppal.Fondos.ImageWidth * 15
high% = ppal.Fondos.ImageHeight * 15
'Almaceno la imagen en el form
If vForm.Picture = 0 Then
Set vForm.Picture = ppal.Fondos.ListImages(vfondo).Picture
End If
For Y = 0 To vForm.ScaleHeight Step high%
For X = 0 To vForm.ScaleWidth Step wide%
vForm.PaintPicture vForm.Picture, X, Y, wide%, high%, , , , ,&HCC0020
Next X
Next Y
End Sub
Un saludo a todos.
-------
"Lo mas incomprensible del mundo es que el mundo sea comprensible." (Albert
Einstein)
E-mail: mailto:jaci@arrakis.es
Cordoba-Andalucia-Spain
Rolando, aún cuando soy nuevo en la lista vi que los compañeros Iñigo y Lonely te dieron una salida, pero aún cuando el código que te envio es un poco más pesado, es a prueba de todo (menos de una forma MDI). Espero que te sea útil:
========================================
' Rutina que permite colocar en forma de mosaico un picture box en toda la forma.
' Debe existir en la forma un PictureBox con una imagen cargada o cargada al comenzar el Form_Load
' Declaraciones
Declare Function BitBlt% Lib "GDI32" (ByVal hdestDC As Integer, ByVal x As Integer, ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hsrcDC As Integer, ByVal xsrc As Integer, ByVal ysrc As Integer, ByVal dwRop As Long)
Const copyit& = &HCC0020
' Rutina
'*************************************************************
' SUB NAME: TilePaper
' by Visual Basic Power Toolkit - modified by Jeff Williams
' written in Visual Basic 3.0 on 12/28/1995
' Modify for VB 5.0 by Maximiliano Gil Toro on 12/08/1998
'
' PROPOSITO:
' Sacar un mosaido en la forma de un picture Box
'
' PARAMETROS DE ENTRADA:
' Pic = Nombre del PictureBox (ej: Picture1)
' Frm = Nombre de la forma (ej: Me o Form1)
'
' Llamar esta rutina en el evento "Paint" de la forma.
' Colocar el la propiedad visible del PictureBox a False
'*************************************************************
Sub Tilepaper (Pic As Control, Frm As Form)
Dim iSaveScaleMode As Integer
Pic.AutoRedraw = True
Pic.BorderStyle = 0
Frm.AutoRedraw = False
iSaveScaleMode = Frm.ScaleMode
Frm.ScaleMode = 3
Wide% = Pic.Width
High% = Pic.Height
For Y = 0 To Frm.ScaleHeight Step High%
For X = 0 To Frm.ScaleWidth Step Wide%
z% = BitBlt(Frm.hDC, X, Y, Wide%, High%, Pic.hDC, 0, 0, copyit&)
Next X
Next Y
Frm.ScaleMode = iSaveScaleMode
End Sub
Este código puedes copiarlo tal como está y colocarlo en un módulo o en el área general de la forma. Como se indica, se llama en el evento Paint de la forma.
Espero que te sea de ayuda
Saludos