Hola Jairo:
Ayer conteste a tu petición via correo y aqui tengo lo que me solicitaste:
De antemano pido disculpas por no contestar a tiempo tu correo.
Para cambiar la Imagen de Fondo haz click derecho en el escritorio para que salga el menú de selección, puedes avanzar, regresar o mostrar aleatoriamente una imagen de 5 que contiene el ejemplo, puedes poner las que quieras y
necesites, solo haz el cambio de cuentas imagenes quieras mostrar en tu sistema y listo.
![Image](http://img692.imageshack.us/img692/2481/dibujomkhw.jpg)
Te dejo el ejemplo construido y el codigo fuente para quienes lo necesiten y si por si acaso con el tiempo no pueden bajar el ejemplo, las imagenes son en formato JPG, uso freeimage.dll para mostrarlas, puedes usar BMP y PNG, pero JPG es mejor por tamaño de cada imagen, las tengo guardadas en la carpeta "FONDOS", puedes poner más si gustas.
- Code: Select all Expand view
#Include "FIVEWIN.CH"
STATIC oWnd,nBrush
//-----------------------------------------------------------------------------------------------------------------//
FUNCTION Main()
LOCAL oIco,oBru
nBrush:= Random(5) // 5 Imagenes para este ejemplo
DEFINE Icon oIco RESOURCE "01"
DEFINE Brush oBru FILE ".\FONDOS\FONDO"+ALLTRIM(STRZERO(nBrush,2))+ ".JPG"
DEFINE Window oWnd TITLE "La Cultura Maya de Chiapas México." ICON oIco BRUSH oBru
ACTIVATE Window oWnd MAXIMIZED ON RIGHT CLICK ShowPopup(nRow, nCol)
RETURN nil
//-----------------------------------------------------------------------------------------------------------------//
STATIC FUNCTION ShowPopup( nRow, nCol )
LOCAL oPop
MENU oPop POPUP
MENUITEM "Avanzar Imágen del Escritorio" RESOURCE "BMP1" ACTION CambiaFondo(">")
SEPARATOR
MENUITEM "Regresar Imágen del Escritorio" RESOURCE "BMP2" ACTION CambiaFondo("<")
SEPARATOR
MENUITEM "Imágen Aleatoria del Escritorio" RESOURCE "BMP3" ACTION CambiaFondo("*")
SEPARATOR
MENUITEM "Terminar Paseo por la Cultura Maya" RESOURCE "BMP4" ACTION oWnd:END()
ENDMENU
ACTIVATE POPUP oPop AT nRow, nCol OF oWnd
RETURN nil
//-----------------------------------------------------------------------------------------------------------------//
STATIC FUNCTION CambiaFondo(cTipo)
LOCAL oBru
IF cTipo == ">"
nBrush:= IF( nBrush > 04, 01, ++nBrush )
oWnd:oBrush:RELEASE()
oWnd:REFRESH()
ELSEIF cTipo == "<"
nBrush:= IF( nBrush < 02, 05, --nBrush )
oWnd:oBrush:RELEASE()
oWnd:REFRESH()
ELSEIF cTipo == "*"
nBrush:= Random(5)
oWnd:oBrush:RELEASE()
oWnd:REFRESH()
ENDIF
MSGInfo("Cambiando Imagen de Fondo por:"+CRLF+;
".\FONDOS\FONDO"+ALLTRIM(STRZERO(nBrush,2))+ ".JPG","Imagen de Escritorio")
DEFINE BRUSH oBrush FILE ".\FONDOS\FONDO"+ALLTRIM(STRZERO(nBrush,2))+ ".JPG"
SET BRUSH OF oWnd TO oBrush
SysRefresh()
oWnd:REFRESH()
SysRefresh()
RETURN nil
//-----------------------------------------------------------------------------------------------------------------//
STATIC FUNCTION Random(nLimite)
STATIC nGuarda:= 1
LOCAL I
LOCAL nResult
IF VALTYPE( nLimite ) # [N]
nLimite:= 100
ENDIF
I:= SECONDS()
WHILE nLimite > I
I:= I * 100 +SECONDS()
ENDDO
nGuarda:= (nGuarda +I) / (nResult:= nGuarda * I % nLimite +1)
nResult:= INT( nResult )
RETURN nResult
Aqui te dejo el ejemplo construido:
http://www.megaupload.com/?d=E0DTZTZVOjala sea de utilidad y sea lo que
necesites... si algo más necesitas no dudes en preguntarme.. Saludos..