SDI Anwendung und mehrere Fenster



  • Hi,

    folgende Aufgabenstellung (Visual Studio 2005): Ich hab eine SDI Anwendung mit einer Ansicht und möchte in dieser View verschiedene Fenster (Dialoge?) öffnen. Einerseits, um Daten (nur Text) anzuzeigen, andererseits um den Benutzer die Möglichkeit zu geben, diverse Einstellungen zu ändern.
    Die Fenster in der view sollten innerhalb des Hauptfensters bleiben (also nicht darüber hinaus verschoben werden können).
    Bis jetzt hab ich das folgend Realisiert:
    - SDI Anwendung
    - Dialog und zugehörige Klasse (CDialog) erstellt
    - Dialog Eigenschaft "Style" auf Child gesetzt
    - Dialog aus der View-Klasse der Anwendung aufgerufen, und zwar folgend:

    CDialog *pMyDialog = new CDialog();
    pMyDialog ->Create(IDD_THEDIALOG,this);
    pMyDialog ->ShowWindow(SW_SHOW);

    Klappt soweit, allerdings folgende Fragen dazu:
    1.) Ist dieser Weg vernünftig? Wenn nicht, warum?
    2.) Der so geöffnete Dialog, bzw. das Fenster wird nicht als "aktiv" markiert, auch wenn ich draufklicke. Klicks auf Steuerelemente funktionieren jedoch. Wie kann ich das Fenster dazu bringen, "aktiv" zu werden (also jetzt rein optisch).

    Gruss,
    Günther


  • Mod

    Ein Fenster, dass als Child definiert wird kann nicht aktiv werden, wie ein Top-Level Window.
    Solch eine GUI macht in meinen Augen keinen Sinn, warum sollte das Fenster nur im Rahmen des Main Windows verbeleiben? Wenn man es nur dort verschiebt verdeckt es doch evtl. entsprechende Infos.
    Ich finde dockbare Fenster als weitaus effektiver. So wie VS auch arbeitet.

    Im nicht dockbaren Zustand kann man die Fenster auch über den Rand verschieben.


Anmelden zum Antworten