Topper als TOP aber nicht TOPMOST



  • Hallo,

    ich habe momentan folgendes Problem. Und zwar will ich ein Fenster erstellen das innerhalb (beliebiger, vorgegebener) Anwendungen im Vordergrund bleibt, für andere Anwendungen aber nicht.

    Also ähnlich dem "Suchen" Dialog von Notepad: Wenn dieser Dialog geöffnet ist bleibt er für die Notepad Anwendung im Vordergrund, auch wenn der Dialog deaktiviert wird. Aktiviert man aber ein Fenster einer anderen Anwendung, ist dieses oberhalb dieses Dialogs.

    Momentan verwende ich für mein Fenster den Style HWND_TOPMOST, welcher schon fast genau das leistet was ich will. Problem ist hier allerdings dass das Fenster dann über allen anderen Fenster liegt, also auch über solchen die gar nicht zu der jeweiligen Anwendung gehören.

    HWND_TOP im Gegensatz dazu scheint nicht zu reichen, da das Fenster dann bei Deaktivierung immer in den Hintergrund verschoben wird.

    Weiß jemand wie man das gewünschte Verhalten erreichen kann?



  • Schau mal hier: http://stackoverflow.com/questions/812686/can-a-window-be-always-on-top-of-just-one-other-window

    Vielleicht ist die erste Antwort das was du suchst.



  • Du musst doch eigentlich nur bei CreateWindow/CreateDialog das Handle des Hauptfensters als "Parent" übergeben und als Stil WS_CHILD (Vordergrundfenster bleibt innerhalb der Grenzen des Hauptfensters) oder in deinem Beispiel WS_OVERLAPPED[WINDOW] verwenden.



  • Probierer schrieb:

    Schau mal hier: http://stackoverflow.com/questions/812686/can-a-window-be-always-on-top-of-just-one-other-window

    Vielleicht ist die erste Antwort das was du suchst.

    Perfekt, funktioniert genau wie gewünscht. Besten Dank 👍

    mapper schrieb:

    Du musst doch eigentlich nur bei CreateWindow/CreateDialog das Handle des Hauptfensters als "Parent" übergeben und als Stil WS_CHILD

    Ja, also WS_CHILD wollte ich nicht verwenden da es schon noch ein eigenes Fenster sein sollte. Aber mit GWL_HWNDPARENT funktioniert es ja jetzt, trotzdem Danke 🙂



  • mapper schrieb:

    Du musst doch eigentlich nur bei CreateWindow/CreateDialog das Handle des Hauptfensters als "Parent" übergeben

    =

    happystudent schrieb:

    Aber mit GWL_HWNDPARENT funktioniert es ja jetzt, trotzdem Danke 🙂


Anmelden zum Antworten