Fenster bei "Fokusverlust" schließen



  • Hallo!

    Ich bin dabei mir ein eigenes Menü zu entwickeln. Meine (eigene) Klasse ist lediglich von ::CWnd abgeleitet und hat nichts mit der ::CMenu Klasse der MFC zu tun. Nun habe ich schon alle Nachrichten abgegrast jedoch keine gefunden, die mir weiterhilft. Wie jedes andere Menü soll meines sich auch schließen, wenn es geöffnet wurde un der User irgendwo anders hinklickt außer aufs Menü. Also egal ob es die eigene Anwendung ist oder sonst ein Fensterbereich innerhalb von Windows. Eben wie das normale Menü es auch tut. Hat jemand eine Idee wie ich das implementieren könnte?

    P.S.: Mein Menü erstelle ich mit ::CWnd::CreateWindowEx und dem WS_POPUP Flag. Als pParentWnd gebe ich der Zeit den Dialog an, der das Menü aufruft.


  • Mod

    Wenn Dein Fenster den Focus hat, dann bekommt aus auch WM_KILLFOCUS gesendet! Das kannst Du entsprechend auswerten. Ich mache das z.B. oft genug beim Inplace Edit. Allerdings kann es sich manchmal auch noch lohnen einen Mousehook zu verwenden, aber das kommt auf die Anwendung an.



  • Im Platform SDK ist ein Sample namens "Fakemenu".



  • Martin Richter schrieb:

    Wenn Dein Fenster den Focus hat, dann bekommt aus auch WM_KILLFOCUS gesendet! Das kannst Du entsprechend auswerten. Ich mache das z.B. oft genug beim Inplace Edit. Allerdings kann es sich manchmal auch noch lohnen einen Mousehook zu verwenden, aber das kommt auf die Anwendung an.

    Leider nicht. Damit habe ich es schon probiert.

    hinweis schrieb:

    Im Platform SDK ist ein Sample namens "Fakemenu".

    Ahh, danke. Das sieht so aus als ob ich gebrauchen könnte.

    Frohes Fest und schöne Tage an Euch beiden und auch alle anderen. :xmas1:

    P.S.: Danke.


Anmelden zum Antworten