Tuto para formularios [VB 6.0]



  • **Aquí les dejo un tutorial para que puedan ponerle transparencia a un formulario con un ScrollBar.

    Primero debemos empezar un proyecto nuevo, con un ejecutable común.

    Luego creamos un nuevo módulo.

    En el código del módulo debemos poner el siguiente código.

    [b][color]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  [/color][/b]
    

    Esas son las declaraciones necesarias.

    Ahora en el formulario debemos pone un scrollbar, por ahora horizontal.

    Ahora, en el código del formulario, debemos poner este código.

    [color][b]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 'Podemos cambiarla entre 50 y 255\. Cuánto más grande el_
                                     número, más opaco es el formulario.
    
    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[/b][/color]
    

    Pueden probarlo haciendo click aquí.

    Ante cualquier duda no duden en consultar acá, MP o huguigz@hotmail.com

    Saludos.**



  • **Exelente Hugo. Lindos aportes los tullos.

    Salu2.

    P.D Ahora que estoy entrando en el mundo del VB me sirve =P**



  • Buen aporta, yo estoy usando el vb,pero no tenia esa 😛
    asi que muchas gracias!



  • Muy bueno, pero insisto q para mi gusto este tipo de "tutoriales" no deberia llamarse asi, porq no esta enseñando mucho que digamos, solamente dice "crea un modulo y pega esto" q se yo xD
    Igual el aporte siempre es bueno 😃



  • @KennY®:

    Muy bueno, pero insisto q para mi gusto este tipo de "tutoriales" no deberia llamarse asi, porq no esta enseñando mucho que digamos, solamente dice "crea un modulo y pega esto" q se yo xD
    Igual el aporte siempre es bueno 😃

    Entiendo, debería ir explicando más.
    De a poco aprendo.
    Saludos.



  • Si o sino en vez de "Tutos para formularios" ponerle de nombre "Codigo para transparencia en form" por ejemplo
    Igual repito, como aporte esta muy bueno 😃



  • Dale, dale, gracias.
    Acepto los consejos de quién sabe. 😄



  • Upeo por desaparición 🙂


Log in to reply