AnimateWindow API

Messenger Plus! Live Script

Aprovechando que Dennis Mike vino a pasar unos das en casa, nos propusimos a jugar un poco con la API “AnimateWindow” para hacer un efecto de animacin al abrir las ventanas de conversacin y que no sean tan aburridas (s s, solo se abren y nada ms) :P

En este pequeo ejercicio, usaremos el evento OnEvent_ChatWndCreated que sirve para ejecutar determinadas instrucciones cuando una ventana de chat ha sido creada o abierta por alguna razn; dicho evento solo tiene un solo Parametro que no es mas que un objeto del cual podemos sacar otras utilidades :D .

Enfocandonos al script… usaremos las siguientes variables globales (las que van al inicio del script y pueden ser usadas en cualquier momento)

var AW_CENTER = 16;
var AW_BLEND = 524288;
var AW_SLIDE = 262144;
var AW_ACTIVATE = 131072;
var AW_HOR_POSITIVE = 1;
var AW_HOR_NEGATIVE = 2;
var AW_VER_POSITIVE = 4;
var AW_VER_NEGATIVE = 8;

y luego directo al evento OnEvent_ChatWndCreated:

function OnEvent_ChatWndCreated(ChatWnd){
//Oculta la ventana para apreciar mejor el efecto
Interop.Call(‘User32′,’ShowWindow’,ChatWnd.Handle, 0);
// Aparece lentamente
Interop.Call(“User32″, “AnimateWindow”, ChatWnd.Handle, 300, AW_BLEND + AW_ACTIVATE);

var theRECT = Interop.Allocate(16);
theRECT .WriteDWORD(0, 0);
theRECT .WriteDWORD(4, 0);
theRECT .WriteDWORD(8, 0);
theRECT .WriteDWORD(12, 0);

// repinta la ventana de chat, solo por estetica xD
Interop.Call(‘user32′, ‘RedrawWindow’, ChatWnd.Handle, theRECT, 1, 1);

}

Bien, ese fue un efecto de entrada para las ventanas que consiste en aparecer (al estilo fade) :) pero existen otros ms, las variables declaradas arriba (con prefijo AW_) son muy importantes si queremos crear otros efectos como:

a) Crear un efecto de entrada que se desplaza desde la esquina inferior izquierda hasta la esquina superior derecha:

Interop.Call(‘user32′, ‘AnimateWindow’, ChatWnd.Handle, 300, AW_VER_NEGATIVE + AW_HOR_POSITIVE + AW_SLIDE + AW_ACTIVATE);

b) desde la esquina inferior derecha hasta la esquina superior izquierda:

Interop.Call(‘user32′, ‘AnimateWindow’, ChatWnd.Handle, 300, AW_HOR_NEGATIVE + AW_VER_NEGATIVE + AW_SLIDE + AW_ACTIVATE);

c) desde la esquina superior derecha hasta la esquina inferior izquierda:

Interop.Call(‘user32′, ‘AnimateWindow’, ChatWnd.Handle, 300, AW_HOR_NEGATIVE + AW_VER_POSITIVE + AW_SLIDE + AW_ACTIVATE);

d) Aparecer desplazandose de izquierda a derecha

Interop.Call(‘user32′, ‘AnimateWindow’, ChatWnd.Handle, 300, AW_HOR_POSITIVE + AW_SLIDE + AW_ACTIVATE);

e) desde la esquina superior izquierda hasta la esquina inferior derecha:

Interop.Call(‘user32′, ‘AnimateWindow’, ChatWnd.Handle, 300, AW_HOR_POSITIVE + AW_VER_POSITIVE + AW_SLIDE + AW_ACTIVATE);

f) aparecer desde el centro:

Interop.Call(‘user32′, ‘AnimateWindow’, ChatWnd.Handle, 300, AW_CENTER + AW_SLIDE + AW_ACTIVATE);

y asi podra irme buscando multitud de combinaciones jojo, que ms podra decir? a mi gusto ya no sera tan simple y aburrido :P . Incluso estaba pensando “formalizarlo” en script con ventana de configuracin donde ustedes eligen como quieren que se abran las ventanas *-)

jajaja ya se que podra parecer cosa de Freaks, pero me gustara ver algun da… algo parecido a Beryl xD Saludos ;)

8 Comments »

  1. FRESCO dijo,

    December 29, 2006 @ 4:52

    Nadie o muy pocos entendieron lo que dije en ese
    post aunque no era exactamente eso :).No voy a
    dejar los spaces eso que quede claro xD.

  2. felipEx dijo,

    December 29, 2006 @ 4:58

    FRESCO, bueno. almenos eso fue lo que entendi. y como
    no, spaces te queda peqeo :P

    en cuanto al codigo, dejo el siguiente ejemplo
    http://felipex.net/wp-
    content/uploads/2006/12/animatewindow.txt

  3. Raperjosito dijo,

    December 29, 2006 @ 5:47

    Esta bastante bien

    Saludos

    Sigue asi con el blog

  4. cristhian dijo,

    December 31, 2006 @ 1:52

    hola felipe que tal.. am pos este efecto de animacion
    que hiciste esta bueno e, y pos lo de la mueca
    jajaja se lleva un premio.. amm pos pasaba para
    avisarte que empese con un blog jajaj no preguntes
    que paso con el otro…

    si quieres te pasas por hya no esperes encontrar nada
    por que esperae al 1 de enero a empezar a publicar
    jajaja ao nuevo blog nuevo..

    te enlase…. no espero que me enlaces felipe pos por
    que no tengo nada pero si lo haces me echarias una
    gran mano

    saludos felipe y feliz ao !!!!!!!!!!1 ;)

  5. Davinxi dijo,

    December 31, 2006 @ 12:45

    Publica tus fotos con las muecas. :P

  6. felipEx dijo,

    December 31, 2006 @ 17:05

    jajajaj para qe?:P

  7. mave dijo,

    May 6, 2007 @ 2:49

    bueno cuando tienes un skin puesto la ventana del chat se deforma y tienes qe restaurar una ventana qe tenias minimizada o si no no se acomoda haci qe pues nimodo con los skins no funciona

  8. mave dijo,

    May 6, 2007 @ 2:55

    o si no hasme uno qe no se deforme y qe sea de los qe inician desde el centro

 

Deje su comentario, su opinión es importante.





* Me reservo el derecho de eliminar/editar comentarios con lenguaje/conductas inapropiadas. =)

Posts al azar

cargando...

Top Comentaristas

cargando...

Lo más comentado

cargando...