Nur zwei der vier Pfeiltasten funktionieren
-
Ich habe ein leeres Dialogfeld und fange Tastendrücke per OnKeyDown ab. Von den Pfeiltasten wird aber komischerweise nur der für oben und der für links registriert. Die anderen beiden funktionieren nicht. Wie kann ich das ändern?
Noch eine kurze Zusatzinformation: Wenn man ohne MFC und nur mit der WinAPI arbeitet und ein richtiges Fenster hat, funktionieren dort alle vier Pfeiltasten. Wenn ich dagegen ein Dialogfeld habe, gibt es das gleiche Problem. Es ist also kein MFC-spezifischer Fehler, sondern generell einer von Dialogfeldern.
-
In einem Dialog werden Tasteneingaben durch die Funktion IsDialogMessage behandelt. Diese "frisst" einige Tasteneingaben. Ein Dialog ist eine denkbar schlechte Fensterklasse, wenn es einem um die reinen Tastatureingaben geht.
Du kannst PreTranslateMessage überschrieben und sofort CWnd::PreTranslateMessage aufrufen. dadurch umgehst Du die Implementation von CDialog!
-
Danke. So funktioniert es.