aInteresante! | Contenido para todo el mundo.
Bienvenido a nuestro foro!

Te invitamos a formar parte de nuestro gran equipo.
Puedes registrarte y empezar a crear temas y a hacer post.
Lo único que necesitas es:

* Tiempo para hacerlo
* Voluntad para querer ayudar a los demás

También puedes visitar nuestro blog:
http://ainteresante.wordpress.com

Unirse al foro, es rápido y fácil

aInteresante! | Contenido para todo el mundo.
Bienvenido a nuestro foro!

Te invitamos a formar parte de nuestro gran equipo.
Puedes registrarte y empezar a crear temas y a hacer post.
Lo único que necesitas es:

* Tiempo para hacerlo
* Voluntad para querer ayudar a los demás

También puedes visitar nuestro blog:
http://ainteresante.wordpress.com
aInteresante! | Contenido para todo el mundo.
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.
Buscar
 
 

Resultados por:
 


Rechercher Búsqueda avanzada

Conectarse

Recuperar mi contraseña

Últimos temas
» Pack de 500 pinceles para Photoshop cs6 y cc
Aplicar transparencia a un formulario Icon_minitime1Sáb Feb 09, 2019 11:48 am por Elmer Homero

» Guía 2015 | Cómo subir de grupo, ganar más BAPs y dinero creando campañas en PaidVerts
Aplicar transparencia a un formulario Icon_minitime1Dom Mayo 31, 2015 4:25 pm por Elmer Homero

» 2015| Cómo reducir el peso de tus imágenes sin perder la calidad | SIN PROGRAMAS |
Aplicar transparencia a un formulario Icon_minitime1Vie Mayo 15, 2015 5:09 pm por Elmer Homero

» [Guía 2015]Como ganar dinero viendo anuncios en internet con PaidVerts, ¿Qué es y cómo funciona?
Aplicar transparencia a un formulario Icon_minitime1Miér Abr 15, 2015 5:31 pm por Elmer Homero

» Las mejores páginas PTC para trabajar y ganar dinero.
Aplicar transparencia a un formulario Icon_minitime1Miér Abr 15, 2015 5:27 pm por Elmer Homero

» Descargar sb0t 5.27 chat server para Ares - nuevo 2015 -
Aplicar transparencia a un formulario Icon_minitime1Miér Abr 15, 2015 4:25 pm por Elmer Homero

» sb0t 4.28[Chat Server
Aplicar transparencia a un formulario Icon_minitime1Miér Abr 15, 2015 4:22 pm por Elmer Homero

» Pack Themes(Temas) Premium para tus foros de SMF (2015)
Aplicar transparencia a un formulario Icon_minitime1Miér Abr 15, 2015 4:01 pm por Elmer Homero

» CS 1.6 Problema con Lista de server (Server List) [Solucion]
Aplicar transparencia a un formulario Icon_minitime1Miér Abr 15, 2015 3:45 pm por Elmer Homero

» Richard Burns Rally (simulacion de rally)- descargar
Aplicar transparencia a un formulario Icon_minitime1Sáb Dic 29, 2012 10:11 am por eric97avila

Visitas!

Dark Help

Aplicar transparencia a un formulario

Ir abajo

Aplicar transparencia a un formulario Empty Aplicar transparencia a un formulario

Mensaje por Elmer Homero Dom Mar 28, 2010 7:02 am

Muestra de como utilizar la función del API SetLayeredWindowAttributes que permite aplicar transparencia a un formulario.

Este ejemplo tiene una función propia llamada Aplicar_Transparencia, donde se le pasa como parámetro el hwnd del formulario al que le queremos aplicar un grado para hacerlo transparente, y en el segundo parámetro se le pasa un valor de tipo Byte que indica el valor o grado de transparencia a aplicar.


Aplicar transparencia a un formulario Formulario-con-transparencia

Nota:Nota: La función Api SetLayeredWindowAttributes, se encuentra en plataformas Windows 2000 en adelante, por lo tanto no funcionará en plataformas anteriores, como Windows 98 o Windows ME


Código fuente en un módulo .Bas:


Código:
 Option Explicit 
 
 'Declaración del Api SetLayeredWindowAttributes que establece _ 
  la transparencia al form 
 
 Private Declare Function SetLayeredWindowAttributes Lib "user32" _ 
                (ByVal hWnd As Long, _ 
                  ByVal crKey As Long, _ 
                  ByVal bAlpha As Byte, _ 
                  ByVal dwFlags As Long) As Long 
 
 
 'Recupera el estilo de la ventana 
 Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _ 
                (ByVal hWnd As Long, _ 
                  ByVal nIndex As Long) As Long 
 
 
 'Declaración del Api SetWindowLong necesaria para aplicar un estilo _ 
  al form antes de usar el Api SetLayeredWindowAttributes 
 
 Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _ 
                (ByVal hWnd As Long, _ 
                ByVal nIndex As Long, _ 
                ByVal dwNewLong As Long) As Long 
 
 
 Private Const GWL_EXSTYLE = (-20) 
 Private Const LWA_ALPHA = &H2 
 Private Const WS_EX_LAYERED = &H80000 
 'Función para saber si formulario ya es transparente. _ 
  Se le pasa el Hwnd del formulario en cuestión 
 
 Public Function Is_Transparent(ByVal hWnd As Long) As Boolean 
 On Error Resume Next 
 
 Dim Msg As Long 
 
    Msg = GetWindowLong(hWnd, GWL_EXSTYLE) 
         
        If (Msg And WS_EX_LAYERED) = WS_EX_LAYERED Then 
          Is_Transparent = True 
        Else 
          Is_Transparent = False  #        End If 
 
    If Err Then 
        Is_Transparent = False 
    End If 
 
 End Function 
 
 'Función que aplica la transparencia, se le pasa el hwnd del form y un valor de 0 a 255 
 Public Function Aplicar_Transparencia(ByVal hWnd As Long, _ 
                                      Valor As Integer) As Long 
 
 Dim Msg As Long 
 
 On Error Resume Next 
 
 If Valor < 0 Or Valor > 255 Then 
    Aplicar_Transparencia = 1 
 Else 
    Msg = GetWindowLong(hWnd, GWL_EXSTYLE) 
    Msg = Msg Or WS_EX_LAYERED 
     
    SetWindowLong hWnd, GWL_EXSTYLE, Msg 
     
    'Establece la transparencia 
    SetLayeredWindowAttributes hWnd, 0, Valor, LWA_ALPHA 
 
    Aplicar_Transparencia = 0 
 
 End If 
 
 
 If Err Then 
    Aplicar_Transparencia = 2 
 End If 
 
 End Function
 
Ahora colocar un control Scrollbar Horizontal llamado HScroll1 para graduar la transparencia:

Código:
 Private Sub Form_Load() 
 
    'Valores máximos y mínimos para el ScrollBar 
    HScroll1.Max = 255 
    HScroll1.Min = 50 
 
    ' Le establecemos un valor por defecto _ 
    a la barra apenas carga el form 
 
    HScroll1.Value = 150 
 
 End Sub 
 
 Private Sub HScroll1_Change() 
 
    'Llamamos a la función pasándole el handle del form _ 
    y el valor de la transparencia, que es el de la barra 
 
    Call Aplicar_Transparencia(Me.hWnd, CByte(HScroll1.Value)) 
 
 End Sub
Elmer Homero
Elmer Homero
Admin

Mensajes : 88
Puntos : 256
Reputación : 2
Fecha de inscripción : 12/01/2010

https://ainteresante.forosactivos.net

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.