Antes de comenzar cambiamos la propiedad ShowWindow A 2 (Formulario de nivel superior)
Ahora declaramos la API que vamos a utilizar la colocamos en el evento Load del formulario:
DECLARE integer SetWindowPos IN "user32"; integer hwnd, integer hWndInsertAfter,; integer x,integer y,integer cx,integer cy,integer wFlags
Si queremos darle un grado de transparencia declaramos estas.
Declare Integer SetWindowLong In "user32" ; Integer HWnd, Integer nIndex, Integer dwNewLong Declare Integer SetLayeredWindowAttributes In "user32" ; Integer HWnd, Integer crey, ; Integer bAlpha, Integer dwFlags
Bueno ahora en el evento Init colocamos lo siguiente.
*- esto nos permitira abrir el formulario sin que nos afecte otra ventana. =SetWindowPos(this.HWnd, -1, 0, 0, 0, 0, 1 + 2 ) *-- Con estas define el grado de transparencia del formulario SetWindowLong(THISFORM.hWnd, -20, 0x00080000) *-- Cambia el valor (200) para ajustar el nivel de transparencia. SetLayeredWindowAttributes(THISFORM.hWnd, 0, 200, 2)
Bien ahora vamos a darle una pequeña animación.
En el evento Active del form colocamos lo siguiente.
*-- Ubico el formulario tleft = (_screen.Width -this.Width) ttlef = (tleft + this.Width) this.Move (ttlef,ttop,this.Width,this.Height) FOR i = 1 TO tleft && muevo el form ttlef = ttlef - 1 this.Move (ttlef,ttop,this.Width,this.Height) IF ttlef = tleft EXIT ENDIF ENDFOR
Ahora el sonido en el mismo evento.
lcWaveFile ="" *-- defino la ruta del sonido a emitir lcWaveFile = ruta + "Librerias\newemail.wav" DECLARE INTEGER PlaySound ; IN WINMM.dll ; STRING cWave, ; INTEGER nModule, ; INTEGER nType PlaySound(lcWaveFile,0,1)
Y listo ya tenemos nuestro mensaje tipo Messenger el diseño corre por cuenta de ustedes.
by FreeCalls
Sólo para accotar que se debe declarar la variable ttop,antes de ser usada en el evento Activate. Podría ser algo como:
ResponderBorrarttop = (_screen.Height - this.Height )
...
Gracias por leer,
Saludos
Aprovechando el Confinamiento por COVID-19 (https://es.wikipedia.org/wiki/COVID-19), lo estoy utilizando y adaptando. Muchas Gracias por el Aporte
ResponderBorrar