Fenster zwingen, dass es Fokus nicht verlieren kann?



  • Hy,
    gibt es eine Möglichkeit ein Fenster sozusagen zu zwingen, dass es den Fokus nicht verliert?
    Konkret erstelle ich als Reaktion auf die Texteingabe in meiner Editbox ein neues .NET-Fenster (via Com-Interop) und zeige dieses an - leider hat es danach aber logischerweise den Fokus, was ich aber nicht haben will da man weiterhin in der Editbox schreiben kann.

    Ich dachte da vielleicht an eine Möglichkeit, wie z.B. dass man auf WM_KILLFOCUS reagiert und dem Fenster so eine Message schicken kann dass es den Fokus behält!?

    Vielen Dank im Voraus,

    mike



  • Ein SetFocus(hEdit) nach dem anzeigen des Fensters sollte langen.



  • Tja, das wird so einfach nicht funktionieren.
    Das Problem ist ja leider, dass mein Edit-Window, das den Fokus behalten soll, in Win32 geschrieben ist und in einer eigenen DLL läuft.

    Auch das von Win32 aus aufgerufenen .NET-Fenster ist eine eigene DLL (beide allerdings im selben Prozess, nämlich explorer-Prozess) - wie kann ich also zwischen zwei "grundverschiedenen" Programmen den Fokus setzen?



  • Vieleicht hilft AttachThreadInput:

    MSDN schrieb:

    By using the AttachThreadInput function, a thread can attach its input processing to another thread. This allows a thread to call SetFocus to set the keyboard focus to a window attached to another thread's message queue.


Anmelden zum Antworten