OVH Cloud OVH Cloud

System Tray

6 réponses
Avatar
Jean-Yves MARTIN
Bonjour,

J'aimerai être informé lorsque la souris quitte l'icone de mon programme
dans la SystemTray. Actuellement je ne le suis que lorsque la souris entre
dans la zone ou lorsue l'on a une action souris dans cette zone (comme clic
bouton droit par exemple).
Le but est de faire disparaitre une petite fenetre popup d'information créée
lorsque la souris est passée sur l'icone de l'application.

Merci pour vos idées

Jean-Yves

6 réponses

Avatar
Jean-Yves MARTIN
Merci pour la réponse.

Oui j'ai vérifié pour les notifications, je ne reçois pas de WM_KILLFOCUS.
En fait j'ai trouvé extrémement peu de documentation sur l'utilisation de la
zone de notification de la TaskBar dans MSDN.

J'avais pensé à la solution du timer, mais il y aura un petit laps de temps
entre le moment où la souris quittera l'icone et le moment où la fenetre
popup se fermera. Si je regarde l'icone de connexion au réseau local par
exemple, la bulle d'aide disparait dès que la souris quitte l'icone.

Jean-Yves

"Arnaud Debaene" a écrit dans le message de
news:
"Jean-Yves MARTIN" wrote in message


news:<bgb5lm$j5s$...
> Bonjour,
Bonjour.
>
> J'aimerai être informé lorsque la souris quitte l'icone de mon programme
> dans la SystemTray. Actuellement je ne le suis que lorsque la souris


entre
> dans la zone ou lorsue l'on a une action souris dans cette zone (comme


clic
> bouton droit par exemple).
> Le but est de faire disparaitre une petite fenetre popup d'information


créée
> lorsque la souris est passée sur l'icone de l'application.

Je ne pense pas que ce soit possible (tu as bien vérifié que tu ne
rcevais pas un WM_KIIFLOCUS ou quelque chose du genre)? Une solution
alternative est d'avoir un timer que tu réinitialises à 0 chaque fois
que tu recois une notification quelconque. Tu fais disparaitre ta
popup quand le timer claque.

Arnaud


Avatar
Cyrille \cns\ Szymanski
> J'avais pensé à la solution du timer, mais il y aura un petit laps de
temps entre le moment où la souris quittera l'icone et le moment où la
fenetre popup se fermera. Si je regarde l'icone de connexion au réseau
local par exemple, la bulle d'aide disparait dès que la souris quitte
l'icone.



C'est même vrai pour toutes les bulles d'aide, tu ne trouves pas ça
étrange ?

--
_|_|_| CnS
_|_| for(n=0;b;n++)
_| b&=b-1; /*pp.47 K&R*/
Avatar
Jean-Yves MARTIN
C'est exact et c'est le comportement que j'aimerais avoir.

Je précise que je n'utilise pas la tooltip que peut afficher l'icone dans la
TrayBar car la longueur du texte affichable est de seulement 64 caractères.
C'est pour cela que je veux avoir ma propre popup.

"Cyrille "cns" Szymanski" a écrit dans le message de
news:
> J'avais pensé à la solution du timer, mais il y aura un petit laps de
> temps entre le moment où la souris quittera l'icone et le moment où la
> fenetre popup se fermera. Si je regarde l'icone de connexion au réseau
> local par exemple, la bulle d'aide disparait dès que la souris quitte
> l'icone.

C'est même vrai pour toutes les bulles d'aide, tu ne trouves pas ça
étrange ?

--
_|_|_| CnS
_|_| for(n=0;b;n++)
_| b&=b-1; /*pp.47 K&R*/


Avatar
Christian ASTOR
Jean-Yves MARTIN wrote:

Je précise que je n'utilise pas la tooltip que peut afficher l'icone dans la
TrayBar car la longueur du texte affichable est de seulement 64 caractères.



On peut afficher + de 64 caractères pour le Tooltip de la Sytem Tray.

C'est pour cela que je veux avoir ma propre popup.



On peut faire ton bidule en récupérant la position de ton icone ds la
Sytem Tray mais la quantité de code nécessaire n'en vaut pas la peine.
Avatar
Jean-Yves MARTIN
Comment faire pour afficher + de 64 caractères dans la tooltip de la
SystemTray ? Si je regarde la structure NOTIFYICONDATA, le champ "szTip" ne
fait que 64 caractères. S'il existe une méthode qui fonctionne sous W9x, Win
NT4, W2K et XP je suis preneur (autre que les balloon qui ne fonctionneent
que sous W2K et XP) .

Merci d'avance

Jean-Yves

"Christian ASTOR" a écrit dans le message de
news:
Jean-Yves MARTIN wrote:

> Je précise que je n'utilise pas la tooltip que peut afficher l'icone


dans la
> TrayBar car la longueur du texte affichable est de seulement 64


caractères.

On peut afficher + de 64 caractères pour le Tooltip de la Sytem Tray.

> C'est pour cela que je veux avoir ma propre popup.

On peut faire ton bidule en récupérant la position de ton icone ds la
Sytem Tray mais la quantité de code nécessaire n'en vaut pas la peine.



Avatar
Christian ASTOR
Jean-Yves MARTIN wrote:
Comment faire pour afficher + de 64 caractères dans la tooltip de la
SystemTray ? Si je regarde la structure NOTIFYICONDATA, le champ "szTip" ne
fait que 64 caractères.



...ou 128.
Mais on peut afficher autant de lignes de caractères que l'on veut par
injection de code ds l'esp. d'adr. de l'Explorer, subclassing de
"TrayNotifyWnd" + TTN_GETDISPINFO.
Le problème restant est d'identifier à quelle fenêtre est associé le
tooltip au moment où on l'intercepte. Mais je n'avais pas trouvé de
façon simple (à part ReadProcessMemory() & Cie)