2010-12-23 9 views
0

Wenn der Benutzer ein MFC-Fenster schließen möchte, wird dies durch Drücken einer bestimmten Taste, CButton, IDCANCEL, 'Cancel' getan. Die Schaltfläche ist freigegeben, wenn alle erforderlichen Felder ausgefüllt sind.Tastatur anstelle der Maus: kein KillFocus heißt

Wenn sich der Fokus in der letzten erforderlichen Bearbeitungsbox befindet, hat der Benutzer zwei Möglichkeiten, um das Fenster zu schließen: entweder mit der Maus und drücken Sie es oder drücken Sie einfach die Eingabetaste.

Nun, wenn er/sie entscheidet, das Fenster per Tastatur zu schließen, wird der letzte OnKillfocus nie aufgerufen.

Gibt es irgendwelche Ideen, um dieses Problem zu lösen, da der Killfocus für das jeweilige Fenster wichtig ist.

Dank

Antwort

1

Es gibt keine Möglichkeit, das zu überwinden, und dies ist konstruktionsbedingt. 'Enter' Taste schließt den Dialog beim Treffer (während 'Space' es bei der Freigabe tut).

Ich schlage vor, dass Sie Ihren Dialog-Code neu gestalten, um weniger Funktionalität auf KillFocus zu setzen.

Wenn es um Feldvalidierung geht, gibt es mehrere gängige Entwurfsmuster, um dies zu erreichen.

+0

Nun, ich habe überprüft, ob der KillFocus aufgerufen wird oder nicht. Es heißt zwar nach der OnCancel-Funktion und das ist KEIN gutes;) ... Danke für die Antwort – Sunscreen

Verwandte Themen