Formulario transparente otra forma de hacerlo

01/03/2020

 

Otra forma de crear formularios transparentes

thisform.Destroy

  CLEAR DLLS _Sol_SetWindowLong 
  CLEAR DLLS _Sol_SetLayeredWindowAttributes

 

thisform.Init 

  DoDefault()
  #Define BADOS_LOC	"This sample only runs on Windows 2000 or higher."
 
  If Val(Os(3))<5
 	Messagebox(BADOS_LOC)
 	Return .F.
  Endif

  Declare SetWindowLong In Win32Api As _Sol_SetWindowLong Integer, Integer, Integer
  Declare SetLayeredWindowAttributes In Win32Api As _Sol_SetLayeredWindowAttributes Integer, String, Integer, Integer
  _Sol_SetWindowLong(Thisform.HWnd, -20, 0x00080000)
  _Sol_SetLayeredWindowAttributes(Thisform.HWnd, 0, 230, 2)
 
  * Graduación de la transparencia hasta 240 por ahi 
  lnValue = 190 
  _Sol_SetLayeredWindowAttributes(Thisform.HWnd, 0, lnValue, 2) 

 

En las propiedad del formulario:

ShowWindow = 2 && como formulario de nivel superior

AlwaysOnTop = .t.

 

Comentario

Daniel Sánchez

No hay otra forma, lo que podrías hacer es un módulo para hacer o volver transparente el formulario deseado el cual lo llamas cuando lo necesitas, ahora el uso de transparencias hace años que se dejo de usar porque no aporta mucho, yo un tiempo los use para hacer que los formularios se desvanecieran cuando se cerraban antes de liberarlo, pero después de un tiempo los descarte, ya que no aportaba gran cosa al uso y los clientes les parecía bonito al inicio pero después les daba igual, así que los deje de usar.

 

Descarga

Formulario del ejemplo

 

Vea también

 


 

Referencias

Autor: Hector Colman
Comunidad de Visual FoxPro en Español

 


 

 

 



error: Contenido protegido