Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/07/2009, 16:28
Avatar de piojoman
piojoman
 
Fecha de Ingreso: enero-2005
Ubicación: Argentina
Mensajes: 224
Antigüedad: 20 años, 3 meses
Puntos: 3
Respuesta: Establecer un fondo de pantalla con vb6

cuando te referis a fondo se supone que es fondo de pantalla ¿NO?... puede ser de controles, etc.
Bueno, en primer lugar en el sitio de Microsoft esta especificado detalladamente esa API, dandote todas las constante posible para usar y demas...
Explicación en español
Por seguir, te vas a encontrar que solo se pueden cargar BMP, lo que te recomiendo es usar un control PictureBox para convertir las imagen admitidas por ese control a BMP y luego usar esa API que mencionas para cargar directamente al sistema...

dejo un ejemplo:
Colocar en un form un picturebox(Picture1) y dos botones (Command1 y Command2), ademas tenes que poner una imagen con el nombre de dibujo.jpg en C:\ o cambia la ruta del ejemplo para que no te tire un error...

Código:
Option Explicit
  
'Con esta linea declaramos la unica funcion que necesitamos de la API
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" ( _
        ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long
  
'Constantes que son necesarias para el funcionamiento de la API
Const SPIF_SENDWININICHANGE = &H2
Const SPI_SETDESKWALLPAPER = 20
Const SPIF_UPDATEINIFILE = &H1
  
Private Sub Command1_Click()

    Picture1.Picture = LoadPicture("C:\dibujo.jpg")
    SavePicture Picture1.Picture, "C:\dibujo.bmp"
    SystemParametersInfo SPI_SETDESKWALLPAPER, 0, "C:\dibujo.bmp", SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE
     
End Sub
  
Private Sub Command2_Click()
  SystemParametersInfo SPI_SETDESKWALLPAPER, 0, "", SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE
End Sub
Private Sub Form_Load()
  Command1.Caption = "Poner imagen como fondo de pantalla"
  Command2.Caption = "Sacar imagen como fondo de pantalla"
End Sub
Esa es una de las posible soluciones que encontre... Saludos!