OVH Cloud OVH Cloud

[wd7.5] fenetre transparente

4 réponses
Avatar
Dom
Bonjour,

est il possible de rendre une fenetre transparente. Je desire calculer un
graphe et l'afficher par dessus une fenetre d'un autre soft.

Merci d'avance pour le truc..

Dom

4 réponses

Avatar
Support Japet
Dom a couché sur son écran :
Bonjour,

est il possible de rendre une fenetre transparente. Je desire calculer un
graphe et l'afficher par dessus une fenetre d'un autre soft.

Merci d'avance pour le truc..

Dom



Oui, c'est possible. Regarde la procédure globale ci-dessous dont tu
peux t'inspirer.
Je l'ai affectée à un bouton dans chaque fenêtre
---------------------

// Cette procédure permet de rendre transparente ou opaque la fenêtre
sur laquelle le bouton correspondant a été cliqué.
// Le paramètre PFenêtre contient le nom de la fenêtre.
// Le paramètre PFlagTransparent contient l'état actuel (VRAI :
Transparent, FAUX : Opaque)

PROCEDURE GFenêtreTransparente( PFenêtre est chaîne, PFLagTransparent
est booléen )

LOCAL
PNiveau est un entier
GWL_EXSTYLE est un entier = -20
WS_EX_LAYERED est un entier = 0x80000
LWA_ALPHA est un entier = 2
CRésultat est une chaîne


// On doit rendre la fenêtre transparente
SI PFLagTransparent ALORS


// ----- Procédure perso de réupération de la valeur de la
transparence dans un paramètre
// ----- Tu peux renseigner PNiveau directement et virer le test sur
CRésultat

// Récupère la valeur du paramètre
CRésultat = GChercheValeurParamètre( "TauxTransparence" )

// Pas de pb de récupération du paramètre
SI CRésultat <> "" ALORS

// On mémorise la valeur
PNiveau = Val( CRésultat )

SINON

// On affiche un message
Bip

// Procédures perso à remplacer par l'affichage
d'un message
// GAfficheMessage( GMessagesTraduits("GLO046") )

// Transparence à la valeur par défaut
PNiveau = 150

FIN

// On vérifie si la valeur est dans les bornes
SI ( PNiveau < 0 OU PNiveau > 255 ) ALORS

// On affiche un avertissement
Bip

// Procédures perso à remplacer par l'affichage
d'un message
// GAfficheMessage( GMessagesTraduits("GLO047") + " " +
GMessagesTraduits("GLO046") )

// Transparence à la valeur par défaut
PNiveau = 150

FIN

SINON

// La fenêtre doit redevenir opaque. On positionne le taux à 255
PNiveau = 255

FIN

// Récupération du style actuel de la fenêtre
nStyleActuel est un entier =
AppelDLL32("USER32.DLL","GetWindowLongA",Handle(PFenêtre),PNiveau)

// Application du taux de remplissage
AppelDLL32("USER32.DLL","SetWindowLongA", Handle(PFenêtre),
GWL_EXSTYLE,nStyleActuel+WS_EX_LAYERED)

// Effet de transparence
AppelDLL32("USER32.DLL", "SetLayeredWindowAttributes",
Handle(PFenêtre),0, PNiveau,LWA_ALPHA)

--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Avatar
BLR
Dom a pensé très fort :
Bonjour,

est il possible de rendre une fenetre transparente. Je desire calculer un
graphe et l'afficher par dessus une fenetre d'un autre soft.

Merci d'avance pour le truc..

Dom



Tu as aussi :
mafenetre..opacité = valeur (valeur = 0 à 100) voir onglet style de
description fenetre.
Cordialement

--
BLR
Avatar
Romain PETIT
BLR a pensé très fort :
Dom a pensé très fort :
Tu as aussi :
mafenetre..opacité = valeur (valeur = 0 à 100) voir onglet style de
description fenetre.



Pas en 7.5...
Sinon, tu as la même API donnée par "Support Japet", avec un peu plus
de détails et de vérifications (cette API n'est dispo que sur
W2000/XP/2003

http://rompetit.free.fr/Pub/WD7/fg_TransparenceFenetre.txt

Attention, ne pas en abuser (cela prend pas mal de ressources, que ce
soit par les API directes ou par la fonction intégrée de WD8-9)

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
BLR
Il se trouve que Romain PETIT a formulé :
BLR a pensé très fort :
Dom a pensé très fort :
Tu as aussi :
mafenetre..opacité = valeur (valeur = 0 à 100) voir onglet style de
description fenetre.



Pas en 7.5...
Sinon, tu as la même API donnée par "Support Japet", avec un peu plus de
détails et de vérifications (cette API n'est dispo que sur W2000/XP/2003

http://rompetit.free.fr/Pub/WD7/fg_TransparenceFenetre.txt

Attention, ne pas en abuser (cela prend pas mal de ressources, que ce soit
par les API directes ou par la fonction intégrée de WD8-9)

A+



Pardon je n'avais pas fait attention à l'entete !

--
BLR