Page 1 of 1
Diálogos Sombreados
Posted: Sat Aug 02, 2008 6:12 pm
by mmercado
Hola Amigos:
Existe alguna clase o utilería para mostrar los diálogos con sombra?
De antemano gracias por su ayuda.
Manuel Mercado
Posted: Mon Aug 04, 2008 10:49 am
by Mike Serra
Buenos días Manuel, al fín lo encontré, lo tenía con algunos ejemplos de transparencias, pero ahí va el ejemplo de las sombras. Espero que mi granito de arena te sirva para que continues con tus fabulosos proyectos,
Saludos,
Miguel Angel
Code: Select all
#include "fivewin.ch"
#define LWA_ALPHA 2
#define GWL_EXSTYLE -20
#define WS_EX_LAYERED 524288
#define CS_DROPSHADOW 131072
#define GCL_STYLE -26
function main()
LOCAL oDlg, nFactor :=0, btnmais, btnmenos, btnloop
DEFINE DIALOG oDlg TITLE "Dialogos con sombra" pixel from 0, 0 to 400, 400
ACTIVATE DIALOG oDlg CENTER on init PonSombra(odlg) //on paint CallFactor(@nFactor,odlg)
return nil
static function PonSombra(odlg)
local nInt:=0
nInt:=SetClassLong(oDlg:hWnd,GCL_STYLE,nOr(GetClassLong(odlg:hWnd,GCL_STYLE),CS_DROPSHADOW))
// msginfo(nInt)
return
static function callfactor(nFactor,odlg)
local i:=0
for nFactor = 1 to 255 step 1
SETTRANSP( oDlg, nFactor )
sysrefresh()
if nFactor = 1
odlg:nWidth:=400
odlg:nHeight:=400
WndCenter( odlg:hWnd )
sysrefresh()
end if
next i
for i = 1 to 1000000 step 0.5
next i
for nFactor = 255 to 1 step -1
SETTRANSP( oDlg, nFactor )
sysrefresh()
end if
oDlg:end()
return
static function SETTRANSP( oDlg, nFactor )
SETWINDOWLONG( oDlg:hWnd, GWL_EXSTYLE, NOR( GETWINDOWLONG( oDlg:hWnd,GWL_EXSTYLE ), WS_EX_LAYERED ) )
SETLAYEREDWINDOWATTRIBUTES( oDlg:hWnd, , nFactor, LWA_ALPHA )
RETURN NIL
static function TRANSPAR( oDlg, nFactor, Sinal, oBtn )
if Sinal = "+"
if nFactor < 10
nFactor := 260
endif
nFactor -= 5
else
if nFactor > 250
nFactor := 5
endif
nFactor += 5
end if
SetWindowText( oDlg:hWnd, "Transparent dialog. Transparencia: " + alltrim(str(nFactor)) )
SETLAYEREDWINDOWATTRIBUTES( oDlg:hWnd, , nFactor, LWA_ALPHA )
sysrefresh()
return nil
static function TRANSLOOP( oDlg, nFactor, Sinal, oBtn )
local X
for X = 1 to 255 step 0.5
SetWindowText( oDlg:hWnd, "Transparent dialog. Transparencia: " + alltrim(str(x)) )
SetLayeredWindowAttributes( oDlg:hWnd, , x, LWA_ALPHA )
next
for X = 255 to 1 step -0.5
SetWindowText( oDlg:hWnd, "Transparent dialog. Transparencia: " + alltrim(str(x)) )
SetLayeredWindowAttributes( oDlg:hWnd, , x, LWA_ALPHA )
next
SetWindowText( oDlg:hWnd, "Transparent dialog. Transparencia: " + alltrim(str(nFactor)) )
SETLAYEREDWINDOWATTRIBUTES( oDlg:hWnd, , nFactor, LWA_ALPHA )
sysrefresh()
return NIL
DLL32 function SetLayeredWindowAttributes( hWnd As LONG, crKey As LONG, ;
bAlpha As LONG, dwFlags As LONG ) AS LONG PASCAL ;
from "SetLayeredWindowAttributes" lib "user32.DLL"
DLL32 function GetClassLong( hWnd As LONG, crKey As LONG) AS LONG PASCAL ;
from "GetClassLongA" lib "user32.DLL"
DLL32 function SetClassLong( hWnd As LONG, nValue As LONG, nNewValue As LONG) AS LONG PASCAL ;
from "SetClassLongA" lib "user32.DLL"
/*
DLL32 function GetFreeResources(nX AS LONG) AS LONG PASCAL from ;
"_MyGetFreeSystemResources32@4" Lib "RSRC32.DLL"*/
Posted: Mon Aug 04, 2008 4:02 pm
by mmercado
Mike Serra wrote:Buenos días Manuel, al fín lo encontré, lo tenía con algunos ejemplos de transparencias, pero ahí va el ejemplo de las sombras. Espero que mi granito de arena te sirva para que continues con tus fabulosos proyectos
Hola Miguel Angel:
Justamente lo que necesito, mil gracias y un abrazo.
Manuel Mercado
Posted: Tue Aug 05, 2008 11:49 pm
by alex_cyr
que buen tip, gracias por compartir
saludos.
Alex.
Super bonito
Posted: Sat Oct 18, 2008 4:34 am
by AIDA
Me encontre su ejemplo de poner sombras que lindo en compartir
una preguntita se puede hacer mas grande la sombra
Saludos
Aida
Posted: Sat Oct 18, 2008 8:56 am
by dobfivewin
Estimados
Me sumo a la "preguntita"
Sale finita la sombra en mi caso, o es así como tiene que salir??
Gracias
david
Argentina
Posted: Wed Oct 22, 2008 7:28 am
by dobfivewin
Hola Amigos
Disculpas por la insistencia, Se puede hacer un poco más ancha la somba??
Chas Gracias
David
Argentina
Posted: Wed Oct 22, 2008 12:16 pm
by jbrita
Amigo alguna imagen de dialogos con Sombra
Saludos