J'essaie d'afficher un menu contextuel lorsque vous cliquez droit sur mon icône de notification, qui fonctionne bien; Mais je veux que le menu disparaisse lorsque l'utilisateur clique en dehors de ce menu.Delphi "Tray" icône (NotifyIcon) menu contextuel ne disparaît pas lorsque vous cliquez à l'extérieur
Il est censé être de conception (comme dans ce document: http://support.microsoft.com/kb/135788), mais aucune application décente je sais de se comporte comme ça. J'ai essayé d'appeler SetForegroundWindow en utilisant la poignée du menu contextuel en vain. Je suis sûr qu'il est possible de contourner ce problème, comme je l'ai fait il y a des années, mais je ne me souviens plus comment.
Quelqu'un sait comment atteindre le comportement attendu?
La raison pour laquelle votre appel 'SetForegroundWindow' n'a pas fonctionné est que vous lui donniez un handle * menu * au lieu d'un handle * window *. Ils ne sont pas interchangeables. Vous devriez avoir juste utilisé 'Handle' (a.k.a.' Self.Handle') à la place. –
D'accord. Dans toutes mes applications systray, j'utilise SetForegroundWindow() pour focaliser le TForm avant d'afficher le menu contextuel. J'émets également un message WM_NULL au TForm après la fermeture du menu contextuel. –
n'a jamais vérifié le statut de SetForegroundWindow, lui permettant d'échouer silencieusement? – OnTheFly