KillFocus bei DoModal?



  • Hallo zusammen

    ich habe hier was ganz komisches.

    Ich habe ein Eingabefeld, auf dessen KillFocus ich reagiere.

    In dem KillFocus Frage ich ein paar Sachen ab, und wenn das ein oder andere wahr ist, dann bekommt der Benutzer per DoModal ein Auswahl-Dialog angezeigt, wo er dann was klicken muss.

    Wenn er das gemacht hat, ist meine OnKillFocus abgearbeitet, ABER der Cursor springt net mehr auf den nächsten TAB-Punkt, sondern bleibt in dem gleichen Eingabefeld und makiert mir die ganze Eingabe Blau.

    Wenn der Benutzer dann natürlich auf das nächste Feld klickt, oder nochmal TAB drückt, kommt er natürlich immer wieder in diese nicht gewollte schleife mit der Auswahl hinein.

    Warum macht er das? Ich habe mal da DoModal einfach auskommentiert und dann ging das auch.

    Mit kommt das so vor als ob er das immer macht, wenn er das Fenster neu zeichnen muss.


  • Mod

    Unterscuhe doch ob überhaupt etwas geändert wurde um zu entscheiden ob der Diaog angezeigt werden soll.
    Alternativ (aber schlechter): Mach ein PostMessage mit einer eigenen Nachricht, dass den Dialog anzeigt. Dann ist der Focus bereits auf dem nächsten Control und der Focus kehrt dorthin zurück.



  • Mit KILLFOCUS habe ich auch schon so meine schlechten Erfahrungen gemacht, gerade beim Öffnen von Fenstern im Nachrichtenhandler. Ich habe das Problem gelöst, indem
    ich EN_KILLFOCUS, CBN_KILLFOCUS und NM_KILLFOCUS per ON_CONTROL_RANGE bzw. ON_NOTIFY_RANGE abfange und in dem Nachrichtenhandler dann per PostMessage() eine selbstdefinierte WM_FOCUSLOST Message losschicke, auf die ich dann wiederum reagiere. Allerdings muss ich auch auf den Fokusverlust jedes Controls reagieren,
    da dann der Feldinhalt 'on the fly' geprüft wird.


Anmelden zum Antworten