PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Ombre portée des fenetres
Ombre portée des fenetres
Iniciado por david.basinski, 07,mar. 2006 18:48 - 2 respuestas
Publicado el 07,marzo 2006 - 18:48
Bonjour,


Est il possible d'associer aux fenetres une ombre portée ?
J'ai vu qu'il etait possible dele faire en VB, mais je ne touve rien en Windev...

Merci.


David
Publicado el 08,marzo 2006 - 10:41
A condition d'être sous XP, il faut ajouter le style CS_DROPSHADOW à la classe utilisée lors de la création de la fenêtre.
La classe utilisée par WinDev se nome "WinDevObject"
L' API "SetClassLong" avec la constante GCL_STYLE permet de modifier le style de la classe.

Mais le problème avec WinDev, c'est que "WinDevObject" est utilisé avec toutes les fenêtres, aussi bien la principale que les fenêtre de type child popup, alors je ne suis pas sûr que ce soit une bonne idée de le faire.
Publicado el 08,marzo 2006 - 12:01
David --

Vous trouverez ci-dessous la fonction pour ajouter le CS_DROPSHADOW à une fenêtre WinDev.

çà marche bien quand la fenêtre est au dessus du bureau de windows.
C'est pas terrible au dessus d'une autre fenêtre WinDev...

FUNCTION DropShadow(hWnd is int)
Success is int = False
IF API("USER32", "IsWindow", hWnd) THEN
sVersion is string = Left(SysWindowsVersion(), 1)
Ret is int
IF StringCount("XV2", sVersion) THEN // XP, 2003, VISTA
Ret = API("USER32","GetClassLongA", hWnd, GCL_STYLE)
IF BinaryAND(Ret, CS_DROPSHADOW) = 0 THEN
Ret += CS_DROPSHADOW
IF API("USER32","SetClassLongA", hWnd, GCL_STYLE, Ret) THEN Success = True
END
END
END
RESULT Success

Note: Je préfère écrire mon code en anglais, si ce n'est pas votre cas, cliquez sur l'option langue du code pour convertir le code ci-dessus en BASICOIS.