View soll ALLE WM_KEYDOWN und WM_CHAR mitbekommen



  • Hallo!

    Ich will meinen View per Barcodeleser "fernsteuern".
    Der erste Scan klappt auch super, nur die folgenden nicht mehr. Sobald ein Control den Focus hat, komme ich nicht mehr durch die PreTranslateMessage des Views durch. 😞

    Wie löst man das?


  • Mod

    PreTranslateMessage wird für das Fenster selber und ale Parents des Fensters aufgerufen. D.h. liegt ein Control nicht in dieser Kette, dann wird PreTranslateMessage nicht aufgerufen.

    Hast Du einen "Lesemodus", dann bau Dir ein Toplevelfenster den Focus bekommt. Oder subclasse die entsprechenden Controls...



  • Martin Richter schrieb:

    PreTranslateMessage wird für das Fenster selber und ale Parents des Fensters aufgerufen. D.h. liegt ein Control nicht in dieser Kette, dann wird PreTranslateMessage nicht aufgerufen.

    Es ist ein normaler CFormView, also ich würde vermuten, dass es da funktionieren sollte.

    Hast Du einen "Lesemodus", dann bau Dir ein Toplevelfenster den Focus bekommt. Oder subclasse die entsprechenden Controls...

    Lesemodus? 😕
    Die Controls sind "gesubclassed", ich werde jetzt mal gucken, was die in ihren PreTranslateMessage so machen.

    PS: Die haben kein PreTranslateMessage, also können die auch nix verschlucken. 😕


  • Mod

    Mit "Lesemodus" meine ich soetwas wie: User klickt auf Button um Daten einzulesen. User bricht ab oder Daten werden gelesen. Anschließend ist der Lesemodus beendet!

    Ansonsten sind die Child Controls Teil des CFormViews?
    Dann müsstest Du auch die WM_KEYDOWN Nachrichten bekommen.

    WM_CHAR ist IMHO synthetisiert und wird nicht per Messagequeue ausgeliefert. Landen also auch nicht in PreTranslateMessage, aber da mag ich mich irren... 🙂



  • Oh weia... ich nehme alles zurück.
    Ich hatte eine if drin, die auch brav so reagiert hat, wie sie sollte. Nur wollte ich es nicht mehr so. 😉

    Keine Ahnung wieso ich die gestern nicht gesehen habe. 🙄
    Eben als ich meine PreTranslateMessage zeigen und erklären wollte hab ich es gesehen.

    Gut dass man wen zum drüber-reden hat. 👍
    Danke! 🙂


Anmelden zum Antworten