Resumen Rellenar el fondo de los Forms   (2 mensajes )

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




Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com