SET BACKGROUND IN WINDOW

You can share your experience with HMG. Share with some screenshots/project details so that others will also be benefited.

Moderator: Rathinagiri

User avatar
srvet_claudio
Posts: 2193
Joined: Thu Feb 25, 2010 8:43 pm
Location: Uruguay
Contact:

SET BACKGROUND IN WINDOW

Post by srvet_claudio »

Hola a todos,
les dejo un par de comandos que desarrolle para asignar imagenes BMP como fondo de las ventanas sin que interfiera con
la visualizacion/funcionamiento de los controles que aparecen en la misma, espero que les sea de utilidad.
Saludos,
Claudio Soto

***************************************************************************************************
* Incluir el archivo de cabecera SetBkWin.CH
* #include <SetBkWin.ch>
*
* SINTAXIS:
*
* SET BACKGROUND IN WINDOW <cWindowName> FILE <cFile_bmp> TRANSPARENT <lTransp> MODE <nModo_copy>
* ERASE BACKGROUND IN WINDOW <cWindowName>
*

*
* Parametros para MODE <nModo_copy>
*
* #define BMP_ERASE 0 // Borra la imagen de fondo de la ventana
* #define BMP_COPY_NOSCALE 1 // Pega la imagen al fondo con el tamaño original de la misma
* #define BMP_COPY_SCALE 2 // Ajusta proporcionalmente la imagen para que se vea completa en la ventana
* #define BMP_COPY_STRETCH 3 // Ajusta el tamaño de la imagen al tamaño de la ventana
*
*
* EJEMPLOS:
*
* Carga un archivo .bmp
* SET BACKGROUND IN WINDOW "ventana_1" FILE "cow_book.bmp" TRANSPARENT .F. MODE BMP_COPY_SCALE
*
* Carga un imagen .bmp que esta en los recursos
* SET BACKGROUND IN WINDOW "ventana_1" FILE "sami_res" TRANSPARENT .F. MODE BMP_COPY_NOSCALE
*
* Borra el fondo de la ventana
* ERASE BACKGROUND IN WINDOW "ventana_1"
*
*-------------------------------------------------------------------------------------------------
*
* ATENCCION:
*
*
* Para un correcto funcionamiento es impresindible asignarle al ON INIT y ON RELEASE de la ventana
* las siguientes funciones:
*
* ON INIT SetBackgroundWin_Init ()
* ON RELEASE SetBackgroundWin_End ()
*

* Si ya se ha asignado alguna otra funcion a estos eventos deben encadenarse, ej.
* ON INIT {|| SetBackgroundWin_Init (), Otra_Funcion ()}
***************************************************************************************************


AGREGADO: 26 Marzo 2010, 3:27 pm
Mas abajo postee una versión que corrige un pequeño error encontrado en SET_BK_WIN.rar reportado por Luis Vasquez.
Mil disculpas,
Claudio Soto
Attachments
SET_BK_WIN.rar
(1.22 MiB) Downloaded 471 times
Last edited by srvet_claudio on Fri Mar 26, 2010 3:28 pm, edited 2 times in total.
Best regards.
Dr. Claudio Soto
(from Uruguay)
http://srvet.blogspot.com
User avatar
Vanguarda
Posts: 543
Joined: Wed Feb 11, 2009 10:56 am
Location: Americana - SP
Contact:

Re: SET BACKGROUND IN WINDOW

Post by Vanguarda »

HI friend.

Thanks Claudio for share this nice function with us.

My best regards,
--
Paulo Sérgio Durço (Vanguarda)


http://hmglights.wordpress.com/
User avatar
Rathinagiri
Posts: 5471
Joined: Tue Jul 29, 2008 6:30 pm
DBs Used: MariaDB, SQLite, SQLCipher and MySQL
Location: Sivakasi, India
Contact:

Re: SET BACKGROUND IN WINDOW

Post by Rathinagiri »

Nice contribution Claudio.

Definitely useful for me. Thanks a lot.
East or West HMG is the Best.
South or North HMG is worth.
...the possibilities are endless.
User avatar
mustafa
Posts: 1160
Joined: Fri Mar 20, 2009 11:38 am
DBs Used: DBF
Location: Alicante - Spain
Contact:

Re: SET BACKGROUND IN WINDOW

Post by mustafa »

Hola Claudio
Tu código , está muy logrado,
gracias por compartir, cada día
se aprende algo nuevo.
Un Abrazo
Mustafa ;)
User avatar
fchirico
Posts: 324
Joined: Sat Aug 23, 2008 11:27 pm
Location: Argentina

Re: SET BACKGROUND IN WINDOW

Post by fchirico »

srvet_claudio wrote:Hola a todos,
les dejo un par de comandos que desarrolle para asignar imagenes BMP como fondo de las ventanas sin que interfiera con
la visualizacion/funcionamiento de los controles que aparecen en la misma, espero que les sea de utilidad.
Saludos,
Claudio Soto
Gracias Claudio !!!

Son bienvenidas.
Saludos, Fernando Chirico.
User avatar
srvet_claudio
Posts: 2193
Joined: Thu Feb 25, 2010 8:43 pm
Location: Uruguay
Contact:

Re: SET BACKGROUND IN WINDOW

Post by srvet_claudio »

Gracias Paulo Sérgio, Rathinagiri, Mustafa y Fernando por sus comentarios.
Un saludo cordial a todos,
Claudio
Best regards.
Dr. Claudio Soto
(from Uruguay)
http://srvet.blogspot.com
User avatar
luisvasquezcl
Posts: 1258
Joined: Thu Jul 31, 2008 3:23 am
Location: Chile
Contact:

Re: SET BACKGROUND IN WINDOW

Post by luisvasquezcl »

Hola Claudio,
genial la rutina, un gran aporte.
Hay un problema con el tamaño de la imagen, al maximizar la ventana y cambiar el fondo, no cubre todo el fondo sino que queda con el ancho menor al actual de la ventana y muestra la imagen anterior.
gracias por tu aporte.
saludos cordiales,
Luis Vasquez
User avatar
srvet_claudio
Posts: 2193
Joined: Thu Feb 25, 2010 8:43 pm
Location: Uruguay
Contact:

Re: SET BACKGROUND IN WINDOW

Post by srvet_claudio »

luisvasquezcl wrote:Hola Claudio,
genial la rutina, un gran aporte.
Hay un problema con el tamaño de la imagen, al maximizar la ventana y cambiar el fondo, no cubre todo el fondo sino que queda con el ancho menor al actual de la ventana y muestra la imagen anterior.
gracias por tu aporte.
saludos cordiales,
Luis Vasquez
Gracias Luis por el aviso.
Problema SOLUCIONADO!!!
Adjunto la versión corregida (me olvide de borrar el fondo anterior antes de asignar un nuevo fondo).

Al maximizar la ventana y cambiar el fondo, la imagen del gato no cubre toda la superficie de la ventana porque
use en el ejemplo la opción de pintado BMP_COPY_NOSCALE y la imagen del gato es mas pequeña que la ventana maximizada.
La imagen de la vaca cubre toda la ventana porque use la opción BMP_COPY_STRETCH.

#define BMP_COPY_NOSCALE 1 // Pega la imagen al fondo con el tamaño original de la misma
#define BMP_COPY_SCALE 2 // Ajusta proporcionalmente la imagen para que se vea completa en la ventana
#define BMP_COPY_STRETCH 3 // Ajusta el tamaño de la imagen al tamaño de la ventana

Un saludo cordial,
Claudio Soto.
Attachments
SET_BK_WIN_corregido.rar
(1.22 MiB) Downloaded 419 times
Best regards.
Dr. Claudio Soto
(from Uruguay)
http://srvet.blogspot.com
User avatar
luisvasquezcl
Posts: 1258
Joined: Thu Jul 31, 2008 3:23 am
Location: Chile
Contact:

Re: SET BACKGROUND IN WINDOW

Post by luisvasquezcl »

excelente Claudio,
mis felicitaciones por tu aporte.
saludos cordiales,
Luis Vasquez.
User avatar
srvet_claudio
Posts: 2193
Joined: Thu Feb 25, 2010 8:43 pm
Location: Uruguay
Contact:

Re: SET BACKGROUND IN WINDOW

Post by srvet_claudio »

Gracias Luis,
un abrazo
Claudio
Best regards.
Dr. Claudio Soto
(from Uruguay)
http://srvet.blogspot.com
Post Reply