Tastatureingabe auslesen wenn Button fokusiert ist



  • Hallo zusammen,

    Ich erstelle eine GUI um Winamp über einen Touchscreen und Fernbedienung zu bedienen. Zur leichteren Navigation möchte ich die Tastatureingabe auslesen (für spätere Steuerung über die Fernbedienung) und je nach fokusiertem Control ein bestimmtes anderes Control fokusieren. Für CListCtrl Objekte gibt es da das ON_NOTIFY - LV_KEYDOWN Event, aber für Buttons hab ich nichts gefunden.

    Gibt es solch ein Event auch für Buttons?

    Alternativ könnt ich die Tastatureingabe für den gesamten Dialog nehmen und überprüfen welches Control fokusiert ist.

    Kann mir jemand sagen wie ich überprüfen kann, welches Control fokusiert ist?

    GetFocus() sagt nur welches Fenster fokusiert ist, wenn ich es richtig verstanden habe.

    Danke und schönen Gruß

    MrFlow



  • Ein Control ist bei Windows auch ein Fenster ...



  • Aha, ok, das heißt ich bekomme dann einen Pointer auf das fokusierte Control?!

    Jetzt muß ich nur noch rausfinden, wie ich über den Pointer bestimmte Controls erkenne ... Werd ich ausprobieren ...

    Vielen Dank



  • HWND GetFocus(VOID)
    

    gibt Dir ein ganz normales Window-Händel zurück. Alle Funktionen sind dann
    auf dieses Handle anwendbar.

    zB

    int GetWindowText(
    
        HWND hWnd,	// handle of window or control with text
        LPTSTR lpString,	// address of buffer for text
        int nMaxCount 	// maximum number of characters to copy
    
          );
    


  • Danke nochmals.

    Das bringt mich auf eine Idee, um die Tastatureingabe nur auf einem Button abzufangen. Würde das funktionieren (kanns grad nicht ausprobieren):

    ON_NOTIFY(WM_KEYDOWN, IDC_BUTTON, OnKeyDownButton)


  • Mod

    MrFlow schrieb:

    Danke nochmals.

    Das bringt mich auf eine Idee, um die Tastatureingabe nur auf einem Button abzufangen. Würde das funktionieren (kanns grad nicht ausprobieren):

    ON_NOTIFY(WM_KEYDOWN, IDC_BUTTON, OnKeyDownButton)

    Mit WM_ beginnen Windows Nachrichten und haben nicht mit WM_NOTIFY und ON_NOTIFY zu tun. Zumdem wird die Nachrict direkt an den Button gesendet. Du müsstest also im Button einen Handler eibnbauen.

    Oder Du könntest PreTranslateMessage verwenden.


Anmelden zum Antworten