Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: Bazooka en Agosto 09, 2011, 04:22:14 pm
-
Hola quisiera realizar algo parecido a lo que se realiza en los navegadores creo con AJAX.
En un determinado momento mi programa muestra un formulario MDI maximizado y adelante otro mas pequeño y centrado en forma modal (no MDCHILD). ahora yo quisiera de alguna forma mostrar todo lo que esta en el MDI como atenuado o desabilitado.
Espero alguien me ayude si es que se puede hacer.
Atte.
Yo el pibe bazooka!
-
Si hay codigo de eso doc, creo que en el blog de Leandro esta, sino ahora en la noche que llegue a mi casa te paso el que yo tengo.
-
Si hay codigo de eso doc, creo que en el blog de Leandro esta, sino ahora en la noche que llegue a mi casa te paso el que yo tengo.
Gracias Ivan!! siempre al pie del cañon!! vos.
-
Ve chequeando este proyecto de Leandro
http://www.leandroascierto.com.ar/categoria/M%C3%B3dulos/articulo/Cartel%20Notificatorio.php (http://www.leandroascierto.com.ar/categoria/M%C3%B3dulos/articulo/Cartel%20Notificatorio.php)
Si te fijas alli tiene código de transparencia de formulario.
-
Gracias Ivan pero no creo que me sirva este ejemplo de Leo
-
Gracias Ivan pero no creo que me sirva este ejemplo de Leo
Miguel si funciona, fijate en la transparencia que le aplica al formulario tipo Notificación...!
-
Ivan, me parece que lo que el busca es algo comolo que postie en una pregunta tuya, el control que pone todo "gris" no se si te acordas, ya ni me acuerdo de que se trataba el tema.
-
Si.. si recuerdo ese hilo je, en todo caso, a ver Miki postea mejor una captura de foto (AJAX) de lo que quieres obtener.
-
Si exacto Cobein me entendio bien la idea es que lo que se ve debajo del form modal quede gris .
Ya lo he logrado y pongo una captura de lo que queria y como quedo un ejemplo simple.
(http://s2.postimage.org/uk6fdp7o/captura.jpg) (http://postimage.org/image/uk6fdp7o/)
El código del Modulo BAS que use es este:
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
-
Entendimos mal...! Pero bueno, ya gracias a Dios lo tienes resuelto che...!
-
Chanfle, y yo que tenia código de eso también, bueno es un UC con nivel de gris. No capte lo de AJAX y solo me quede con transparencia jeje. Igual bien que lo tengas.
Saludos
-
Chanfle, y yo que tenia código de eso también, bueno es un UC con nivel de gris. No capte lo de AJAX y solo me quede con transparencia jeje. Igual bien que lo tengas.
Saludos
QUE TAL SEGUIRAS TENDIENDO ESE CONTROL?