Page 1 of 1
CAMBIAR IMAGEN DE FONDO
Posted:
Mon May 10, 2010 6:36 pm
by Marco Augusto
CON ESTA FUNCION ASIGNO UNA IMAGEN COMO FONDO DE VENTANA
DEFINE BITMAP oBmpTIT FILENAME "DIB.bmp"
DEFINE WINDOW oWnd TITLE cTitle ;
COLORS CLR_BLACK, CLR_NBLUE ;
MENU BuildMenu() MENUINFO 8 ;
ICON oIco MDI
ACTIVATE WINDOW oWnd MAXIMIZED ;
ON PAINT DrawBitmap( hDC, oBmpTIT:hBitmap, 0, 0, oWnd:oWndClient:nWidth(), ;
oWnd:oWndClient:nHeight() )
COMO LA PUEDO CAMBIAR EN TIEMPO DE EJECUCION ?
GRACIAS
Re: CAMBIAR IMAGEN DE FONDO
Posted:
Mon May 10, 2010 7:00 pm
by Daniel Garcia-Gil
Marco..
Intenta con:
oBmp:LoadBmp( cBmpFile )
oWnd:Refresh()
Re: CAMBIAR IMAGEN DE FONDO
Posted:
Tue May 11, 2010 3:01 pm
by Marco Augusto
Gracias por tu antencion
Pero no funciona
Sí toma el nuevo bitmap
y lo cambia hasta que minimizo y maximizo la ventana
No actualiza la ventana en el momento
ya probé con sysrefresh()
oWnd:refresh()
Re: CAMBIAR IMAGEN DE FONDO
Posted:
Tue May 11, 2010 3:50 pm
by Daniel Garcia-Gil
Marco
Disculpa fue mi error, no me di cuenta que trabajaban en MDI hazlo asi
oWnd:oWndClient:Refresh()
Re: CAMBIAR IMAGEN DE FONDO
Posted:
Tue May 11, 2010 8:11 pm
by Marco Augusto
Muchas gracias
Funcionó perfecto
Re: CAMBIAR IMAGEN DE FONDO
Posted:
Sun Jan 23, 2011 12:49 am
by MarioG
Retomo este hilo que es similar a mi problema.
Este es mi codigo:
- Code: Select all Expand view
...
soWnd0:bPainted := {|| SetLogo( oConxFTP ) }
...
static procedure SetLogo( oConxFTP )
local cImage:= BeforAtNum( "\", SubStr( oConxFTP:cPathDbf,3 ) ) +"\bmp\SiGeCo_iGO32.jpg", ;
nTop, ;
nLeft
@ 0, 0 IMAGE soImg SIZE 75, 75 PIXEL NOBORDER OF soWnd0 UPDATE
nTop := ( soWnd0:nHeight - soImg:nHeight ) / 2
nLeft:= ( soSplit:nLast - soImg:nWidth ) /2 //soSplit:nFirst+
soImg:Progress( .f. )
soImg:LoadBmp( cImage )
soImg:Move( nTop, nLeft,,,TRUE )
soImg:Refresh()
En principio no logro ponerlo en el centro de la ventana
No obstante lo que muestro es en un monitor de 1440x900. Si ejecuto el prg en otro de res. 1024x780 la figura ya no entra en el ercuadro
Lo mismo ocurre con el siguiente dialogo:
al ejecutarlo en otra resolución el dialogo (que esta en un recurso como style dialgo frame, caso contrario se lo puede mover con el mouse) se muestra fuera de la ventana
Cual es la mejor manera de trabajar con splitters y para distintas resoluciones?
muchas gracias
Re: CAMBIAR IMAGEN DE FONDO
Posted:
Mon Jan 24, 2011 6:37 pm
by sysctrl2
Mario yo lo hago mas o menos como se indica en el siguiente codigo.
- Code: Select all Expand view
cFileFondo:="Logo.jpg"
oBmp := TImage():Define( ,cFileFondo )
DEFINE WINDOW oWnd MDI
DEFINE BUTTONBAR oBar OF oWnd SIZE 80, 60 2007 //LEFT //RIGHT
set MESSAGE of oWnd to 'mensaje';
DATE TIME KEYBOARD COLOR '*rb+/w' FONT oFont2 2007
nAncho := GetSysMetrics( 0 )
nAlto := GetSysMetrics( 17 ) - GetSysMetrics( 15 ) - oBar:nHeight() - oWnd:oMsgBar:nHeight()
oWnd:bPainted := {|hDC| PalBmpDraw( hDC,0,0,oBmp:hBitmap,,nAncho, nAlto,, (.T.)) }
ACTIVATE WINDOW oWnd MAXIMIZED
saludos..
Re: CAMBIAR IMAGEN DE FONDO (SOLUCIONADO)
Posted:
Wed Jan 26, 2011 1:02 am
by MarioG
Cesar; muchisimas gracias, ya mi matemáticas no daba para más!
Lo que yo necesitaba era usar esta funcion PalBmpDraw( hDC, ....) pues me hice un lio con la TImage declarandola como comando
Saludos
Re: CAMBIAR IMAGEN DE FONDO
Posted:
Fri Jul 08, 2011 7:31 pm
by Willi Quintana
Hola,, Como le haces,, a mi no me funciona el cambio del imagen en una MDI en tiempo de ejecucion,,
Salu2
Re: CAMBIAR IMAGEN DE FONDO
Posted:
Mon Jul 11, 2011 1:12 pm
by MarioG
Willi;
No se si es aplicable en entorno MDI, nunca lo probé.
Lo que hago es lo siguiente:
// Ventana
DEFINE ICON aO[_Ico] RESNAME "iGO"
DEFINE WINDOW soWnd0 ;
TITLE "Protocolo de Transferencia de Archivos (FTP) | Origen: "+Upper( oConxFTP:cPuntoVta ) ;
ICON aO[_Ico] COLOR CLR_BLACK,CLR_BLACK ;
NOMAXIMIZE ;
FROM 2000,5 TO 2001,5 ;
MENU BuildMenu()
...
soWnd0:bPainted:= {|hDC| SetLogo( hDC ) }
...
ACTIVATE WINDOW soWnd0 ON INIT ( soSMsg:Hide(), soWnd0:Center() )
// Fin
// ········································································· \\
// L O G O
static procedure SetLogo( hDC, oConxFTP )
local oImg, ;
cLogo:= ".\bmp\SiGeCo_iGO32.jpg"
oImg:= TImage():Define( , cLogo )
PalBmpDraw( hDC, (soWnd0:nHeight-oImg:nHeight ) /3, soSplit:nFirst+( soSplit:nLast-oImg:nWidth) /2, oImg:hBitmap,, oImg:nWidth, oImg:nHeight,, TRUE )
// Fin
Re: CAMBIAR IMAGEN DE FONDO
Posted:
Mon Jul 11, 2011 1:50 pm
by Willi Quintana
Hola,,, si funciona en MDI, gracias a todos por las sugerencias,,,
Salu2