API SetForeGroundWindow ?

cs_Arkalis Messages postés 29 Date d'inscription lundi 25 octobre 2004 Statut Membre Dernière intervention 1 décembre 2008 - 21 janv. 2005 à 11:10
cs_Arkalis Messages postés 29 Date d'inscription lundi 25 octobre 2004 Statut Membre Dernière intervention 1 décembre 2008 - 21 janv. 2005 à 15:00
Bonjour, j'aurais une quesiton concernant cet API SetForegroundWindow, que cet réellement cet API



car je me sers de cet API pour pouvoir faire disparaitre un menupopup
appelé par le Systray quand je click sur le bureau ou ailleur



mais j'aurais voulu savoir si imaginons j'ai 2 feuilles :



frmMain

frmConfig



avec dans frmMain un menu type

mnuFile

-mnuItemConfig

-mnuItemExit



et que je mette dans l'événement du Systray :



SetForeGroundWindow frmConfig.hWnd

PopupMenu mnuFile



vala, ça aurait quoi comme conséquence exactement ? et dans quel cas, ce code ci-dessus peut-être utile ?



et pourquoi si je mets :



SetForeGroundWindow frmMain.hWnd


PopupMenu mnuFile



mon menupopup disparait bien ? pour quelle raison ? quels sont les
événements qui se produisent dans le cas d'un SetForegroundWindow



Merci

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 janv. 2005 à 14:29
Salut
Je ne vois pas pourquoi tu te compliques la vie avec cette API.
Lorsque tu cliques sur le SysTray de ton appli, celle-ci prend le focus, donc il suffit de faire maForme.Show pour la faire apparaitre.
Le problème de ton exemple est que, si la forme que tu désignes n'a jamais été chargée, il se peut que cela ne marche pas (à tester).
Le SetForeground... est un peu autoritaire, je trouve.
Pour ma part, la commande 'PopupMenu mnuFile' suffit à condition que le code du mnuFile dise 'maForme.Show'.

Vala
Jack
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
cs_Arkalis Messages postés 29 Date d'inscription lundi 25 octobre 2004 Statut Membre Dernière intervention 1 décembre 2008
21 janv. 2005 à 15:00
Bah en fait si je m'interesse à cet API c'est parsque je dois obligatoirement m'en servir dans le cas d'utilisation d'un Systray



Comme bcp ont du avoir ce type de probleme : après avoir ouvert un MenuPopup par le systray



Bah il est impossible de le faire fermer sans être dans l'obligation de
sélectionner au moins un menu, et donc pour regler le problème on fait
appel à cette API juste avant de faire afficher le popup.



mais vu que ca marche, bah j'aimerais savoir ce que fait réellement cet
API, en gros pourquoi ca marche si je met cette ligne avant....



j'ai le MSDN, mais bon c'est en anglais, et l'anglais et moi ça fait 10...
0
Rejoignez-nous