Re: Iconisation, systray et cie... | Sujet: Re: Iconisation, systray et cie... par thernius sur 17/9/2004 10:00:03
Retour sur expérience :
Pour envoyer une fenêtre dans le 'systray' et la ramener grâce à un double-clic gauche, voici une procédure fonctionnelle (WD8 80315p + Windows XP SP2).
Dans les déclarations globales de la fenêtre à 'iconiser' :
// Déclaration du booléen d'état d'iconisation
fg_bIconise est un booléen = Faux
//Déclenchement de l'interception de l'iconisation de la fenêtre
Evénement("PRO_ICONIZE", "*.*", 274)
ensuite dans l'évènement 'Modification de la taille de ' :
eFenetreTaille est un entier
// Récupération de la taille de la fenêtre (mini, maxi,...)
eFenetreTaille = FenTaille(<FenêtreNom>)
SI eFenetreTaille=TailleMini ALORS // eFenetreTaille = 1
<FenêtreNom>..Visible=PAS <FenêtreNom>..Visible
FIN
il faut maintenant écrire la procédure locale permettant de traiter l'iconisation de la fenêtre par le bouton système (-) :
PROCEDURE PRO_ICONIZE(pMessage, wParam, lParam )
SELON wParam
CAS 61536 //Fermeture
Info("Vous avez demandé la fermeture de la fenêtre")
// Seul ce cas nous intéresse ici...
CAS 61472 //Iconise
SysIconeAjoute("<IcôneNom>",systray,"bla bla...","SystrayGère")
CAS 61488 //Maximise
Info("Vous avez demandé de maximiser la fenêtre")
FIN
enfin pour finir, il faut déclarer la procédure locale 'SystrayGère' :
PROCEDURE SystrayGère(action)
SELON action
CAS 515 // Double clic gauche
// Gérer l'iconisation
fg_bIconise = Faux
// Supprimer l'icône dans le systray
SysIconeSupprime()
// Rendre à nouveau visible la fenêtre
<FenêtreNom>..Visible=Vrai
// et lui rendre sa taille initiale
FenTaille(<FenêtreNom>, TailleNormale)
FIN
Je tiens à remercier DrCharly, R&B et Bassy pour leurs contributions.
PS : Prévenez moi de tout oubli éventuel...
|
|
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
|