Ejemplos usando el Api de windows para Visual basic

212 - Formulario con regiones transparentes

<Volver> - Anterior - Siguiente



 

 

Ejemplo que permite cargar una imagen como fondo de una ventana y aplicarle una máscara

Este ejemplo es del sitio http://www.activevb.de y me lo envió el amigo Leandro Ascierto

Como dice el título, mediante una serie de funciones del api, permite cargar un gráfico de fondo en un formulario sin bordes, y de esta manera poder recortar la ventana a dicha imagen, tomando como transparencia el color de la máscara que se le indique

 

En el ejemplo hay una función llamada MakeFormTransparent, donde se le envía el hwnd del formulario y el color que se tomará como transparente, es decir el color de la máscara, por ejemplo

 

MakeFormTransparent me.Hwnd, Vbwhite

 

Una vista previa del formulario recortado :

vista del formulario con la imagen

 

En este caso la imagen tiene como fondo el color negro.

vista del gráfico gif

 

Entoces la llamada a la función seria:

MakeFormTransparent me.Hwnd, VbBlack

 

Nota: Si utilizamos algunas imágenes donde los bordes no están bien definidos, la función no tomará bien toda al área , y se verá un borde si el fondo de la otra ventana es mas oscuro o mas claro que el mismo, y esto que no queda muy bien, por ejemplo como muestra esta captura

vista del form con el borde

 

No se si es lo ideal, pero la única forma que se me ocurrió de poder solucionarlo, es editando el gráfico con algún editor de imágenes, es decir recoloreando o eliminando el borde que no toma como transparente.

Por ejemplo, colocarle al gráfico un color de fondo, por ejemplo blanco, luego pintar con la herramienta cubo de pintura todo el fondo de otro color por ejemplo negro, y se notará el borde que no tomará como transparente

 

Y luego eliminar ese borde con la herramienta borrar, o dicha zona pintarla igual que el color que se usará como máscara, en este caso el negro

Por ejemplo quedaria algo asi, obviamente si tenés mejor pulso que yo quedará un poco mejor y mas prolijo

 

 

Nota: el ejemplo sirve también para aplicarlo en controles picturebox

 

Descargar ejemplo

 



Buscar en Recursos vb