Hallo allemaal!
Ik irriteer mij altijd mateloos aan popupmenu's die niet het standaard gedrag vertonen: Niet weggaan als er buiten de popupmenu word geklikt. Gelukkig is dit niet bij alle popup's ( anders was het wel standaard gedrag ) maar bij popupmenu's zoals die van kazaa moet ik moeite doen om deze weg te halen. In andere woorden: vreselijk!!
Nu ben ik bezig met een nieuwe versie van mijn NLDTrayIcon en daarbij zag ik dat de popupmenu ook niet wegging wanneer ik buiten de popup klikte met de muis. En dat wilde ik natuurlijk niet na even zoeken kwam ik erachter dat dit verkeerde gedrag word veroorzaakt omdat bij de owner van het popupmenu de focus moet veranderen ( of opnieuw verkrijgen ) voordat de popupmenu komt. vaag!! Iemand een goed argument hiervoor?
Dus voordat je een popupmenu wilt laten zien moet de applicatie de focus verliezen ( altijd goed ) ( geef je eigen window de focus, ook al is deze niet zichtbaar ) en e popupmenu naar voren laten komen.
Op deze manier heb je het probleem niet
dus:
Ik had ook nog ontdekt dat deze workaround niet werkt wanneer de DefWindowProc niet word opgeroepen. In de meeste gevallen is dit wel het geval, in mijn geval was het dus wel nodig en had ik er iets meer moeite mee om het probleem te vindenCode:SetForeGroundWindow( Self.Handle ); //Of iedere andere handle PopUpMenu.PopUp( X, Y );
Bookmarks