[RESOLU] Iconisation, systray et cie...

Inscrit:
08/10/2003 15:30
De Montfort sur Argens (83)
Post(s): 209
Me revoilà,

Je suis en forme aujourd'hui

Bon, alors voilà,
je voudrais lorsque j'iconise mon appli qu'elle disparaisse complètement, c'est à dire qu'elle n'apparaisse pas dans la barre de tâche des fenêtres minimisée et qu'à la place apparaisse l'icone de l'appli à côté de l'horloge (dans le systray).
Alors je sais comment faire l'iconisation, mais je ne sais pas comment faire disparaitre complètement la fenêtre (de la barre des fenêtre minimisées). FenEtat(Fenêtre_Principale,Invisible) ne donne rien...
Je souhaiterais également lors d'un double-clic gauche sur l'icone dans le systray, faire réapparaitre la fenêtre de l'application, puis faire disparaitre l'icone.

J'ai déjà commencé à travailler avec un exemple fourni par DrCharly si je ne m'abuse, qui utilisait la fonction Evènement.

Merci pour vos réponses.

Contribution le : 16/09/2004 15:59
_________________
Cordialement,
Thernius
-------------------------------------------
Itanéa.com, réalisations de logiciels & créations webs......
Créer un fichier PDF de la contribution Imprimer


Re: Iconisation, systray et cie...
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour Ternius,

la fonction:
<Résultat> = SysIconeAjoute(<Nom du fichier icone> [, <Nom du menu> [, <Message de survol> [, <Nom de la procédure>]]])

ne serait-elle pas la solution ?

Contribution le : 16/09/2004 16:37
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Iconisation, systray et cie...

Inscrit:
18/12/2003 13:14
Post(s): 212
Bonjour DrCharly et Thernius.
Je peux ajouter sur ce que Drcharly a écrit la procédure appellée lors du double clique sur l'icone de l'application iconisée :
PROCEDURE <Nom de la procédure>(EvenementSouris)

SI EvenementSouris = WM_LBUTTONDBLCLK   ALORS
AppelDLL32("user32", "OpenIcon",Handle(<NomDeLaFenêtre>))

FIN

NB :
Avant de mettre ce code, il faut faire une déclaration de Constante, dans ce cas :
CONSTANT
     WM_LBUTTONDBLCLK = 515
FIN


ou Bien :
EXTERNE "WinConst.wl" 


Mais pour faire disparaitre la fenêtre en bas sur la barre des taches, je n'arrive pas à trouver .. si tu trouve, tu nous fais signe

Contribution le : 16/09/2004 17:20
_________________
Bonne Chance.
M'envoyer un message......
Créer un fichier PDF de la contribution Imprimer


Re: Iconisation, systray et cie...
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour Thernius,

Mise en place de la méthode
Cette méthode nécessite l'utilisation d'un bouton
Exemple : cmdIconise
Dans Déclarations Globales de la fenêtre
GLOBAL
fg_bIconise est un bolean = Faux

Dans le code du bouton cmdIconise qui va faire disparaitre la fenêtre
SysIconeAjoute(<Fichier icone>,"",<Message de survol> ,"SysIconisation")
fg_bIconise=Vrai
<Nom de la fenêtre>..Visible=Faux

Créer une procédure "SysIconisation"
Pocédure SysIconisation(pTypEvent)
SELON typEvent
	CAS 513 //Clic gauche enfoncé
		fg_bIconise=Faux
		SysIconeSupprime()
		<Nom de la fenêtre>..Visible=Vrai
	CAS 514 //	Clic Gauche releve : WM_LBUTTONUP 
	CAS 515 //double clic Gauche : WM_LBUTTONDBLCLK 
	CAS 516 //clic droit enfoncé 	
	CAS 517 //Clic droit releve : WM_RBUTTONUP 
	CAS 518	//	double clic droit : WM_RBUTTONDBLCLK 
	CAS 519	//Clic Milieu enfonce : WM_MBUTTONDOWN 
	CAS 520 //Clic Milieu releve : WM_MBUTTONUP
	CAS 521 //double clic Milieu : WM_MBUTTONDBLCLK 
FIN

Dans le code de changement de taille de la fenêtre
SI fg_bIconise alors <Nom de fenêtre>..Visible=(PAS <Nom de fenêtre>..Visible)


Voilà

Contribution le : 16/09/2004 20:07
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Iconisation, systray et cie...

Inscrit:
08/10/2003 15:30
De Montfort sur Argens (83)
Post(s): 209
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...

Contribution le : 17/09/2004 10:00
_________________
Cordialement,
Thernius
-------------------------------------------
Itanéa.com, réalisations de logiciels & créations webs......
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2