WS_EX_NOACTIVATE und Keyboardinput

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Takafusa.

    WS_EX_NOACTIVATE und Keyboardinput

    Hi,

    ich habe ein Form das nie Aktiviert werden soll, da ich während des Spielens auf einem 2. Monitor meinen Audioplayer laufen hab, klicke ich aber darauf minimiert Windows das Spielefenster, das möchte ich vermeiden.
    Spoiler anzeigen

    C#-Quellcode

    1. protected override CreateParams CreateParams
    2. {
    3. get
    4. {
    5. CreateParams baseParams = base.CreateParams;
    6. const int WS_EX_NOACTIVATE = 0x08000000;
    7. baseParams.ExStyle |= (int)WS_EX_NOACTIVATE;
    8. return baseParams;
    9. }
    10. }

    Jetzt hab ich allerdings das Problem das Tastatureingaben nicht mehr ankommen, auch wenn die Textboxen das Caret ganz normal zeigen. Ich könnte jetzt einfach selbst die Tastatur pollen und die Textboxen füllen, finde das aber umständlich. Kann man das einfacher haben?
    Kleines Update, ich habe es jetzt mit einem KeyboardHook probiert, im Callback des Hooks mit SendMessage ein KEY_DOWN/KEY_UP and die Textbox geschickt kein Erfolg, habe eine abgeleitete Textbox ertellt, das WndProc überschrieben um zu schauen ob die Message durchkommt. Kommt sie, aber die Textboxen updaten nicht. Hab ein kleines Video gemacht, zu sehen ist wie das Caret beim klicksen in die TextBoxen dorthin springt. Debugausgabe für'n Key-Down/Up ist da, sogar this.OnKeyDown(args); und Invalidate calle ich im WndProc.

    (Kein Werbeverseuchter Hoster)
    streamable.com/ewiglq

    Das ist echt zum heulen. Scheint als müsse ich das auf die blöde Tour machen(selbst den Text ändern :( ). Hoffenlich findet sich da etwas.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Takafusa“ ()