Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: genomma en 25 Junio 2009, 01:22 am



Título: [SOLUCIONADO]Transparencia de Ventanas usando visual basic 2008 NET
Publicado por: genomma en 25 Junio 2009, 01:22 am
hola que tal...


Deseo Realizar un software con ventanas transparentes....y encontré este codigo que puse en un frm de basic 2008 y si me iso la ventana transparente..pero cuando traté de agregar controles como botones, labels, etc...a la hora de ejecucion simplemente se ve la ventana transparente pero sin los controles que he añadido...
¿como puedo solucionar este problema?.....

a continuacion pongo el codigo del frm de la ventana transparente.....




Private Declare Function DwmIsCompositionEnabled Lib "dwmapi.dll" (ByRef en As Integer) As Integer
    Private Declare Function DwmExtendFrameIntoClientArea Lib "dwmapi.dll" (ByVal hWnd As IntPtr, ByRef margins As MARGIN_STRUCT) As Integer
    Public Structure MARGIN_STRUCT
        Dim cxLeftWidth, cxRightWidth, cyTopHeight, cyBottomHeight As Integer

        Sub New(ByVal x1 As Integer, ByVal x2 As Integer, ByVal y1 As Integer, ByVal y2 As Integer)
            cxLeftWidth = x1
            cxRightWidth = x2
            cyTopHeight = y1
            cyBottomHeight = y2
        End Sub
    End Structure

    Sub New()
        Me.BackColor = Drawing.Color.Black
        Dim en As Integer
        If System.Environment.OSVersion.Version.Major >= 6 Then
            DwmIsCompositionEnabled(en)
            If en > 0 Then
                DwmExtendFrameIntoClientArea(Me.Handle, New MARGIN_STRUCT(-1, -1, -1, -1))
            End If
        End If
    End Sub


Título: Re: Transparencia de Ventanas usando visual basic 2008 NET
Publicado por: BlackZeroX en 25 Junio 2009, 01:24 am
Usa el foro adecuado... este es para Basic 6 no .NET

Sección Programacion general sub-foro .net hay plantea tu duda.


Título: Re: Transparencia de Ventanas usando visual basic 2008 NET
Publicado por: genomma en 25 Junio 2009, 01:36 am
Lo siento...Me voi a la sección correcta...











Título: Re: Transparencia de Ventanas usando visual basic 2008 NET
Publicado por: Fr4NN^ en 25 Junio 2009, 02:03 am
pero en vb.net los formularios no tienen una propiedad que es la transparencia de ventana??


Título: Re: Transparencia de Ventanas usando visual basic 2008 NET
Publicado por: seba123neo en 25 Junio 2009, 04:00 am
pero en vb.net los formularios no tienen una propiedad que es la transparencia de ventana??

tal cual, tiene la propiedad Opacity..

saludos.


Título: Re: Transparencia de Ventanas usando visual basic 2008 NET
Publicado por: genomma en 27 Junio 2009, 18:49 pm
hola que tal...soy genomma...



Es verdad existen esas dos opciones la opacyti y la de transparency key..pero si añadimos este trozo de codigo que puse incialmente,a un formulario...notarán que esta transparencia es igual a la de las ventanas que se usan en windows seven....


a diferencia de opacity o tranparecykey que la verdad lo que hace en realidad es dejar un hueco en la ventana....

Si añaden este codigo en un formualrio notarán que no se usan esas propiedades...mi problemas es que todos los controles que añado no se ven en modo de ejecucion....


Título: Re: Transparencia de Ventanas usando visual basic 2008 NET
Publicado por: raul338 en 27 Junio 2009, 22:04 pm
Hola!

Lastima que no tengo el windows vista o 7 como para probar la transparencia, me hubiera gustado verla en accion  :-\

Supongo que el sub New esta dentro de un Formulario, y en .Net todo sub New en un formulario debe tener la llamada al metodo InitializeComponent() que es el que inicia y agrega todos los controles al formulario, cosa que en tu codigo no veo esa llamada.

Solo agrega "Call InitializeComponent()" como una linea mas (eso si, no se si debe ser como primera llamada, o luego de que fijes la transparencia, pero has pruebas jeje) y te deberian aparecer los controles.


Espero que te sirva!!!


Título: Re: Transparencia de Ventanas usando visual basic 2008 NET
Publicado por: genomma en 30 Junio 2009, 02:07 am
Biien Exelente Raul...



se te agradece...me hacia falta al Sub...


Resuelto....





                                                                                           
     genomma