Foros del Web » Programación para mayores de 30 ;) » Programación General »

Animación de ventana tipo msn

Estas en el tema de Animación de ventana tipo msn en el foro de Programación General en Foros del Web. hola gente alguien sabe si se puede hacer y como la animación que hace el msn messenger cada vez que nos avisa que tenemos e-mail ...
  #1 (permalink)  
Antiguo 21/09/2004, 21:24
 
Fecha de Ingreso: marzo-2002
Ubicación: Mar del Plata
Mensajes: 145
Antigüedad: 22 años, 2 meses
Puntos: 0
Pregunta Animación de ventana tipo msn

hola gente

alguien sabe si se puede hacer y como la animación que hace el msn messenger cada vez que nos avisa que tenemos e-mail o cuando se conecta un usuario??, es esa ventana que aparece sobre la barra de tareas en la parte inferior derecha de la pantalla.

desde ya muchas gracias
Lucho
  #2 (permalink)  
Antiguo 21/09/2004, 21:26
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Es Una Ventana Sin Bordes Que Un Timer Le Podes Dar El La Posisin Y Al Formulario Para Que De La Apariencia Que Deseas Y Cuando Llegue A Cierto Punto El Imer Que Vuelva Regresar A Cierto Punto, Pero Primero Tenes Que Saber Cual Es La Resolcion De La Pantalla Para Poder Ubicar Tu Ventanita..

Nos Vemos
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #3 (permalink)  
Antiguo 22/09/2004, 12:57
 
Fecha de Ingreso: marzo-2002
Ubicación: Mar del Plata
Mensajes: 145
Antigüedad: 22 años, 2 meses
Puntos: 0
y ahora pregunto otra cosa:
como puedo hacer para que aparezca siempre por encima de la barra de tareas de windows y no desde el borde inferior de la pantalla.
lucho
  #4 (permalink)  
Antiguo 22/09/2004, 19:51
Avatar de lic_dahool  
Fecha de Ingreso: noviembre-2003
Mensajes: 418
Antigüedad: 20 años, 6 meses
Puntos: 0
a continuación te paso un código que permite animar un formulario utilizando APIs:


Código:
Const AW_HOR_POSITIVE = &H1 'Anima la ventana de izquierda a derecha.
Const AW_HOR_NEGATIVE = &H2 '... de derecha a izquierda.
Const AW_VER_POSITIVE = &H4 '... de arriba hacia abajo.
Const AW_VER_NEGATIVE = &H8 '... de abajo hacia arriba.
Const AW_CENTER = &H10 'Si se usa AW_HIDE la ventana se colapsa si se no se expande.
Const AW_HIDE = &H10000 'Oculta la ventana. Por defecto se muestra.
Const AW_ACTIVATE = &H20000 'Activa la ventana.
Const AW_SLIDE = &H40000 'Usa animacion por desplazamiento. por defecto se usar enrrollar.
Const AW_BLEND = &H80000 'Crea una efecto de difuminado. Solo se puede usar si el hwnd corresponde a una ventana que esta encima (on top).
Private Declare Function AnimateWindow Lib "user32" (ByVal hwnd As Long, ByVal dwTime As Long, ByVal dwFlags As Long) As Boolean
Private Sub Form_Load()
    Me.AutoRedraw = True
    Me.Print "Descargame"
End Sub
Private Sub Form_Unload(Cancel As Integer)
    AnimateWindow Me.hwnd, 200, AW_VER_POSITIVE Or AW_HOR_NEGATIVE Or AW_HIDE
    'Descargar el formulario
    Set Form1 = Nothing
End Sub
con respecto a la otra pregunta no se decirte porque no tengo el VB a mano, pero fijate si lo que buscas esta en el elemento Screen

Si lo llego a encontrar te aviso.

Saludos.
__________________
La cantidad total de inteligencia del planeta permanece constante.
La población, sin embargo, sigue aumentando.

COLE


:cool: Los ordenadores no resuelven problemas ... ejecutan soluciones.
Laurent Gasser


Tienes alguna duda :pensando: ? >>> www.google.com :aplauso: <<<
  #5 (permalink)  
Antiguo 23/09/2004, 08:42
 
Fecha de Ingreso: marzo-2002
Ubicación: Mar del Plata
Mensajes: 145
Antigüedad: 22 años, 2 meses
Puntos: 0
gracias por el codigo, lo voy a probar
  #6 (permalink)  
Antiguo 28/09/2004, 07:08
Avatar de lic_dahool  
Fecha de Ingreso: noviembre-2003
Mensajes: 418
Antigüedad: 20 años, 6 meses
Puntos: 0
Bien, si aún necesitas el código para posicionar tu ventana por sobre la barra de tareas, aquí te va:

Este código te da la dimensiones de la Barra de Tareas:
Código:
Private Type RECT
    Left As Long
    top As Long
    Right As Long
    Bottom As Long
End Type

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Function CopyRect Lib "user32" (lpDestRect As RECT, lpSourceRect As RECT) As Long

Public Function GetTaskBarPos(Optional ByRef posLeft As Long, Optional ByRef posTop As Long, Optional ByRef posRight As Long, Optional ByRef posBottom As Long)

    'Copyright 2004 DaHool. 

    Dim rectWindow As RECT, rectCopy As RECT
    Dim tWnd As Long
    
    tWnd = FindWindow("Shell_TrayWnd", vbNullString)
    GetWindowRect tWnd, rectWindow
    CopyRect rectCopy, rectWindow

    posLeft = rectCopy.Left
    posRight = rectCopy.Right
    posTop = rectCopy.top
    posBottom = rectCopy.Bottom

End Function
Ahora para posicionar tu ventana sobre el borde superior haces lo siguiente:
Código:
    Dim topPos As Long, topBot as Long, TaskHeight as Long
    
    Call GetTaskBarPos(, topPos, , topBot)

    'Con esto obtengo el tamaño de la barra
    TaskHeight = (topBot - topPos) * Screen.TwipsPerPixelY

    'Aquí posiciono el formulario sobre el borde superior
    Me.top = Screen.Height - (Me.Height + TaskHeight)
Espero sea de utilidad.

Saludos.
__________________
La cantidad total de inteligencia del planeta permanece constante.
La población, sin embargo, sigue aumentando.

COLE


:cool: Los ordenadores no resuelven problemas ... ejecutan soluciones.
Laurent Gasser


Tienes alguna duda :pensando: ? >>> www.google.com :aplauso: <<<
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:27.