Aplicar transparencia a un formulario
Página 1 de 1.
Aplicar transparencia a un formulario
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.
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:
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.
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
- 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
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
Sá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
Dom 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 |
Vie 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?
Miér Abr 15, 2015 5:31 pm por Elmer Homero
» Las mejores páginas PTC para trabajar y ganar dinero.
Miér Abr 15, 2015 5:27 pm por Elmer Homero
» Descargar sb0t 5.27 chat server para Ares - nuevo 2015 -
Miér Abr 15, 2015 4:25 pm por Elmer Homero
» sb0t 4.28[Chat Server
Miér Abr 15, 2015 4:22 pm por Elmer Homero
» Pack Themes(Temas) Premium para tus foros de SMF (2015)
Miér Abr 15, 2015 4:01 pm por Elmer Homero
» CS 1.6 Problema con Lista de server (Server List) [Solucion]
Miér Abr 15, 2015 3:45 pm por Elmer Homero
» Richard Burns Rally (simulacion de rally)- descargar
Sáb Dic 29, 2012 10:11 am por eric97avila