Problem mit Dialogbox



  • Hallo Leute,

    ich habe mir mit den Resourceneditor eine Dialogbox erstellt und diese wird dann mit "DialogBox(....);" erzeugt. In der Dialogbox befinden sich 2 Buttons und 2 Edit-Felder. Die Buttons sind zum Übernehmen der Eingabe und zum Schliessen des Dialoges gedacht. Die Buttonevents werden auch korrekt abgefangen, aber wenn ich versuche "WM_KEYDOWN" abzufangen dann wird diese Nachricht nicht behandelt. Mir ist jedoch aufgefallen, wenn ich alle Elemente aus der Dialogbox entferne, also die BUttons und die Editfelder, dann wird nich Nachricht korrekt abgefangen, wie ist das zu Erklären und wie löse ich dieses Problem, ich hoffe hier kann jemand helfen.



  • Ok, ich muss subclassen um die Events abzufangen, aber wie siehts denn aus wenn ich recht viele Elemente in meinem Dialog habe, z.B. Checkboxen, Radiobuttons, Eingabefelder, etc. Das ist ja eine Schweinearbeit, jedes Element zu subclassen. Ist es dann irgendwie sinnvoller die Elemente von Hand, als mit "CreateWindowEx(...)" zu erstellen zu erstellen?



  • Hallo, nochmal ich. Ich kann jetzt zwar die Tastatureingaben abfangen, aber die Taste, die ESCAPE-Taste, auf die es mir ankam, wird nicht regestriert. Alt, Shift, F-Tasten, Buchstaben alles geht, nur nicht ESCAPE (VK_ESCAPE), ich hab mir mal testweise eine kleine Funktion eingebaut, die die int-codes der tasten in einem extra Fenster anzeigt, wie gesagt zu allen tasten, ausser ESCAPE und ENTER bekomme ich was angezeigt, scheisse was mach ich falsch?



  • winapi problem schrieb:

    Hallo, nochmal ich. Ich kann jetzt zwar die Tastatureingaben abfangen, aber die Taste, die ESCAPE-Taste, auf die es mir ankam, wird nicht regestriert. Alt, Shift, F-Tasten, Buchstaben alles geht, nur nicht ESCAPE (VK_ESCAPE), ich hab mir mal testweise eine kleine Funktion eingebaut, die die int-codes der tasten in einem extra Fenster anzeigt, wie gesagt zu allen tasten, ausser ESCAPE und ENTER bekomme ich was angezeigt, scheisse was mach ich falsch?

    warum willst du enter? dein default button kriegt eh das enter.



  • Ich will eigentlich nicht ENTER sondern ESCAPE, aber auf der Suche nach der Lösung habe ich festgestellt das die ENTER Taste auch nicht durchkommt und da hab ich mich gewundert warum nicht, ist ja nicht verkehrt die Antwort darauf zu kennen, auch wenn man's jetzt gerade mal nicht braucht.



  • Poste mal die "case WM_KEYDOWN".



  • Poste mal die "case WM_KEYDOWN".

    es wird eine Funktion ausgeführt die den Zahlenwert von "(int)wParam" also den Keycode ausgibt. Nix wo man was falsch machen kan, weil zu allen anderen Tasten die Zahlen ausgegeben werden, nur nicht zu ENTER und ESCAPE.



  • Gerade die ENTER und ESCAPE. Seltsam. Generiert Dein Kompiler eventuell mehr Code als gewünscht ?
    Prüf mal mit einem SpyXX-Tool, wo die ENTER und ESCAPE bleiben.



  • Gerade die ENTER und ESCAPE. Seltsam. Generiert Dein Kompiler eventuell mehr Code als gewünscht ?
    Prüf mal mit einem SpyXX-Tool, wo die ENTER und ESCAPE bleiben.

    Sorry, ich bin da nicht so bewandert, was meinst du damit und wie gehe ich da vor?



  • Prüf mal ob die ENTER und ESCAPE eventuell als "WM_CHAR" ankommen.
    Falls nicht, dann probier mal mit diesem Tool herauszufinden, wo die "WM_KEYDOWN" von ENTER und ESCAPE hingeleitet werden.


Anmelden zum Antworten