Nach Style ändern die Window-Position beibehalten



  • Hallöchen,

    folgendes ist mein Problem - ich habe ein Fenster und möchte den Style nachträglich ändern. Danach muss man ja, damit die Änderungen wirksam werden, die SetWindowPos Funktion aufrufen. Allerdings erfordert diese Funktion wieder die Position und Größe des Fensters, welche ich nicht habe. Und einfach per GetWindowRect lässt sich das auch nicht machen, da es sich bei dem Fenster um ein Child-Window handelt welches auf einem anderen Fenster platziert wurde. Also sind es relative Koordinaten, wo es sich auf dem Parent-Window befindet.
    Gibt es da eine einfache Lösung, vielleicht ein Parameter für die Positionsangaben damit diese nicht berücksichtigt werden? Oder eine Methode um die Position des Fensters im Parent-Window herauszufinden? (Und das unabhängig ob das Parent-Window eine Captionbar hat, ein Menü, eine Toolbar oder sonstwas. Also die tatsächlichen Koordinaten wo das Childfenster auf dem Parent-Fenster ist, brauche ich).
    (Die Werte der Erstellung des Fensters zu nehmen ist auch keine Lösung da es möglichst flexibel auf jede Art von Fenstern übertragbar sein soll, nicht nur speziell auf dieses mit diesen Größen und Positionen).

    Freue mich über jeden Vorschlag zur Lösung. 🙂

    mfg.

    Ynnus



  • Schau dir mal die Flags von SetWindowPos an (SWP_NOMOVE, SWP_NOSIZE, ...) 😉



  • flenders schrieb:

    Schau dir mal die Flags von SetWindowPos an (SWP_NOMOVE, SWP_NOSIZE, ...) 😉

    Danke flenders, das ist meine Rettung. Ich hab so lange umher probiert, mit SystemMetrics, WindowRect und solchen Scherzen zu rechnen. Schön, dass es so ganz leicht funktioniert. 🙂


Anmelden zum Antworten