MFC / CMDIChildWnd das das FrameWnd verlassen kann?



  • Hola,
    ich kämpfe grade mit folgendem Problem:

    Ich habe eine MFC MDI Anwendung. Es gibt ein offenes Dokument mit einer ganzen Anzahl Views die gleichzeitig geöffnet sind und innerhalb des FrameWnds bewegt werden können.

    Jetzt würde ich gerne einer meiner Views erlauben sich in einen Bereich ausserhalb des Frames zu bewegen (z.B. eine View auf einen sekundären Monitor ziehen).
    Das Framework kümmert sich nun leider darum, dass MDIChildWnds auf den Bereich ihres FrameWnds beschränkt sind. Von Dokument/View Anwendungen hab ich leider nicht viel Ahnung und einen brauchbaren Ansatz um zu verhinden dass der Frame die Position der Views steuert habe ich noch nicht gefunden. Ich bin mir nichtmal sicher ob es überhaupt geht.

    Hatte jemand schon einmal ein ähnliches Problem, bzw. wüsste einen Lösungsansatz?


  • Mod

    Grundsätzlich können sich Child Windows nur innerhalb seines Parents bewegen.


  • Mod

    In der Theroie kannst Du natürlich auch ein neues Frame erzeugen und den View über SetParent in diesen Frame verfrachten. Mit dem MDIChildFrame würde ich das nicht machen, das bringt mit Sicherheit die ganze MDI Welt zum Einsturz...



  • Thx.
    Hatte schon befürchtet, dass das MDI so etwas nicht zulässt,
    Kommentare die ich in CMDIChildWnd::PreCreateWindow gesehen habe versprachen da nix gutes. 😞

    Denke ich werde in meiner View ein normales CWnd* anlegen und versuchen Zeichenbefehle durch die Viewklasse an das frei verschiebbaren Wnd weiterzuleiten und Events auf dem Wnd durch die View behandeln lassen.


  • Mod

    Ein View muss in einem CFRameWnd leben. Du kannst ein neues CFRameWnd anlegen und in dieses Deinen CView transferieren.


Anmelden zum Antworten