Je développe un plug-in (en cours de traitement) pour l'application et, dans le cadre de mon plug-in, je souhaite remplacer les info-bulles de l'application par les miennes. Cependant, il n'y a pas d'API disponible pour moi, alors j'ai décidé d'aller bas niveau.Intercepter et masquer une fenêtre avant qu'elle n'apparaisse
Je connais la classe de fenêtre de la pointe d'outil, mais la question est: comment puis-je la détecter et comment la fermer ensuite?
Voici ce que je pensais faire jusqu'à présent:
- Créer un système à l'échelle crochet WM_CREATE
- Quand on est pris, vérifier la classe et le processus de la cible WM_CREATE
- vérifier est en effet la fenêtre, je me soucie de:
- Si le processus est celui que mon plug-in est assis dans
- Et si la classe est du type correct
- Et si l'application correcte est mise au point (en cas de multiples applications)
- Envoyer un WM_DESTROY à la fenêtre créée et créer ma propre fenêtre à sa position à la place
Comment ça sonne? En supposant qu'il n'y a en effet pas d'API pour gérer les infobulles, y a-t-il un moyen plus simple pour ce dont j'ai besoin?
Merci!
P.S Tagged as C++/C# que je compte écrire dans ces 2 langues (C++ pour crochet système, C# pour tout le reste)
infobulles sont souvent fait en créant et en gardant juste * une fenêtre d'info-bulle * par fenêtre parent de niveau supérieur. Cette fenêtre d'info-bulle est ensuite ajustée et affichée en cas de besoin et masquée lorsqu'elle ne l'est pas. Donc, vous auriez besoin de suivre quand la fenêtre est montrée, pas quand elle est créée, et vous ne voudriez évidemment pas la détruire (vous pourriez vous en sortir en la cachant). –
@Leo: Merci pour le commentaire. C'est peut-être très vrai. – VitalyB