En este caso hacemos 100% transparente el formulario, pero no así los objetos contenidos en él.

PUBLIC goMyForm
goMyForm = CREATEOBJECT("MyFormTopLevel")
goMyForm.SHOW(1)
RETURN
DEFINE CLASS MyFormTopLevel AS FORM
HEIGHT = 266
WIDTH = 386
SHOWWINDOW = 2
AUTOCENTER = .T.
CAPTION = "Formulario Transparente"
WINDOWTYPE = 0
WINDOWSTATE = 0
BACKCOLOR = RGB(255,0,255)
NAME = "MyForm"
ADD OBJECT text1 AS TEXTBOX WITH ;
HEIGHT = 24, LEFT = 264, TOP = 24, WIDTH = 96, ;
VALUE = "Hola!", ;
NAME = "Text1"
ADD OBJECT command1 AS COMMANDBUTTON WITH ;
TOP = 60, LEFT = 264, HEIGHT = 48, WIDTH = 96, ;
CAPTION = "Hola!", NAME = "Command1"
ADD OBJECT pageframe1 AS PAGEFRAME WITH ;
PAGECOUNT = 3, ;
TOP = 24, LEFT = 24, WIDTH = 216, HEIGHT = 204, ;
NAME = "Pageframe1", ;
Page1.CAPTION = "Page1", ;
Page1.NAME = "Page1", ;
Page2.CAPTION = "Page2", ;
Page2.NAME = "Page2"
ADD OBJECT combo1 AS COMBOBOX WITH ;
COLUMNCOUNT = 0, COLUMNWIDTHS = "", ROWSOURCETYPE = 1, ;
ROWSOURCE = "Uno,Dos,Tres,Cuatro,Cinco", ;
TOP = 120, WIDTH = 96, HEIGHT = 24, LEFT = 264, ;
NUMBEROFELEMENTS = 0, STYLE = 2, ;
FIRSTELEMENT = 3, NAME = "Combo1"
PROCEDURE LOAD
IF VAL(OS(3)) >= 5 && Windows 2000 o superior
DECLARE GetWindowLong ;
IN WIN32API ;
AS __GetWindowLong ;
INTEGER, ;
INTEGER
DECLARE SetWindowLong ;
IN WIN32API ;
AS __SetWindowLong ;
INTEGER, ;
INTEGER, ;
INTEGER
DECLARE SetLayeredWindowAttributes ;
IN WIN32API ;
AS __SetLayeredWindowAttributes ;
INTEGER, ;
INTEGER, ;
INTEGER, ;
INTEGER
__SetWindowLong(THISFORM.HWND, -20, BITOR(IIF(__GetWindowLong(THISFORM.HWND, -20), 1, 0), 0x80000))
__SetLayeredWindowAttributes(THISFORM.HWND, THISFORM.BACKCOLOR, 0, 1)
ENDIF
ENDPROC
ENDDEFINE
Luis María Guyán
No hay comentarios. :
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.