2009-03-20 2 views
3

Ich habe eine MDI-App. Ich möchte der Nicht-Client-Titelleiste des untergeordneten Fensters ein Symbol hinzufügen, das es dem Fenster ermöglicht, getrennt vom übergeordneten MDI-Container zu floaten, sodass der Benutzer die untergeordneten Fenster beliebig außerhalb des MDI auf dem Desktop platzieren kann Fenster.Wie können Sie zulassen, dass ein Fenster in einer MDI-Anwendung den übergeordneten Container mit Win32 verlässt?

Ich habe es gesehen, damit ich weiß, dass es möglich ist, aber ich habe eine harte Zeit herauszufinden, wie es zu erreichen ist.

Ich benutze WTL (Windows Template Library), aber ich bin dies mit MFC und Win32 Tagging, da ich glaube, die zugrunde liegenden Prinzipien werden die gleichen sein, und Leute haben Wissen über das Spektrum der Windows-APIs.

Antwort

4

Es ist eine Weile her, dass ich das tat, aber ich denke, es war ausreichend SetParent zu nennen (your_hwnd, 0) das Fenster entweichen lassen von ihm Eltern.

Die Nachrichtenweiterleitung wird sich ein wenig ändern, sodass Sie möglicherweise einige Nachrichten vom Hauptfenster in das vorherige untergeordnete Fenster umleiten müssen. Dies ist höchstwahrscheinlich erforderlich, wenn das Hauptmenü Ihrer MDI-Anwendung mit dem Ex-Kind funktionieren soll.

Wenn Sie Zeichenprobleme bekommen, müssen Sie möglicherweise den Fensterstil ändern, indem Sie SetWindowLong verwenden.

Gute Wahl, um WTL btw zu verwenden - in meiner Meinung eine sehr nette API-Abstraktion ohne irgendwelche Schnickschnack.