Eingabefokus bei F-Tastendruck umlenken?



  • Hallo miteinander.

    Ich habe ein Parentfenster, das ein paar Steuerelemente enthält. Ich möchte aber beim F2-Tastendruck eine bestimmte Funktion starten. Allerdings fehlt meinem Hauptfenster der Eingabefokus. Muss ich jetzt jedem Steuerelement eine eigene Callback-Funktion schreiben, in dem ich die Tastendruck-Nachricht an das Hauptfenster schicke?

    Gruß
    Kai


  • Mod

    Für so etwas gibt es Accelerator.
    Im Allgemeinen brauchst Du für eine übergreifende Behandlung von Tastatureingabe etwas, dass sich in die Messageloop einklinkt.

    Alternativ geht auch Subclassing für alle Controls...



  • Oder einen zweiten thread, der auf den Tastendruck wartet.


  • Mod

    Und wie dass bitte? Was nützt ein zweiter thread?

    Der Input ist für ein Fenster und das ist das Fenster mit dem Fokus.



  • Das Hauptfenster hat aber nicht den Fokus, sodass der die Tastennachricht nicht in der Callback abgreifen kann. Entweder er benutzt einen Thread und führt dann die Funktion aus oder er greift die Nachricht in der Nachrichtenschleife ab.


  • Mod

    Ein anderer Thread hat eine andere input queue.
    Threads sind hier keine Lösung.

    Der einzig richtige Ansatz ist in der Message Queue/Loop, so wie es auch die MFC mit PreTranslateMessage macht.


Log in to reply