Unterdialog im Hauptdialog...



  • Hallo,
    schreibe gerade eine SDI-Anwendung. Diese soll folgendermaßen aufgebaut sein.

    ___________________
    |     |             |
    | Btn |             |
    |     |             |
    | Btn |     Unter-  |
    |     |      dlg    |
    | Btn |             |
    |_____|_____________|
    

    Also, grob gesagt sind dies 2 Dialoge.
    1. Dialog: ist alles (großes Rechteck) -> Hauptdialog
    2. Dialog: sind die so genannten Unterdialoge, welche im Hauptdialog angezeigt werden sollen.

    OK, es wird also der Hauptdialog geladen. Beim Drücken der Buttons auf der linken Seite (Hauptdialog) sollen Unterdialoge geladen und angezeigt werden.

    So weit so gut. In diesen Unterdialogen befinden sich Steuerelemente um Eingaben vorzunehmen. Allerdings soll dann jedoch der Hauptdialog, welcher ja quasi im Hintergrund liegt noch aktiv sein um z.B. das Drücken eines Buttons (links) zu registrieren und entsprechende Nachrichten auszuführen.

    In einer dialogfeldbasierenden Anwendung konnte ich dies mittels den Dialogeigenschaften "Unterdialog" realisieren. Allerdings jetzt bei dieser SDI-Anwendung funktioniert das leider nicht.

    Vielleicht hat ja jemand eine Idee.

    Danke für Eure Hilfe.

    Gruss
    S.



  • Hi, mag sein, dass ich grade dein Konzept durcheinander werfe, aber hier hatte jemand neulich die Idee, sowas mit Hilfe einer Toolbar zu lösen.

    Du kannst eine Toolbar mit Textbuttons bestücken und links an den Rad pinnen.
    Die "Tastendrücke" werden im Mainframe verarbeitet. (So wie bei einem Menü auch.)
    Und das Formular wechseln kannst du so: http://www.c-plusplus.net/forum/viewtopic-var-t-is-81908.html

    Okay? 🙂



  • Hallo estartu_de,
    tja somit hast Du mein Konzept wirklich etwas durcheinander gebracht!
    Habe mir Deine Tipps mal angeschaut, DANKE.

    OK, zwei Dinge fallen mir dabei auf. Habe eigentlich alle Dialoge (mit Steurelementen) bereits erstellt. Das scheint ja nicht das Problem zu sein, da ich diese ja laut Deiner Beschreibung einfach nur von CFormView anstatt von CDialog ableiten muss, richtig?

    Gut, mein Programm teilt sich in 2 Bereiche auf. Aber nur in einem Bereich möchte ich diese Buttons (Toolbar) verwenden. Also sollte die Verarbeitung der KLICKS nicht in MainFrame sondern schon in einer anderen Doc behandelt werden.
    Aufbau:

    CMainFrame
           CDoc1                      CDoc2
        CHauptdialog
    UDLG1  UDLG2  UDLG3 ...
    

    Die einzelnen Unterdialoge sind vom Typ CDialog und von CHauptdialog abgeleitet.
    Die Verarbeitung erfolgt in der Klasse CDoc1. (-> nur 1 Doc für alle Unterdialoge!)

    In der Realität gibt es in meinem Hauptdialog noch einen oberen Bereich mit Steuerelementen zur Anzeige von div. Texten, etc. welche sich je nach geladenem Dialog ändern.

    Mh, muss also die Routine für die ToolBar dann wohl nicht in MainFrame, sondern in meiner CDoc1 implementieren, oder? Und den Rest entsprechend anpassen....!
    Schreit nach Arbeit....!

    Warum geht das denn in einer dialogfeldbasierenden Anwendung so einfach und bei einer SDI muss man so einen rießen Aufwand betreiben?!?!? 😕

    Also, noch mal Danke für den Tipp.

    Gruss
    S.



  • Stefan H schrieb:

    OK, zwei Dinge fallen mir dabei auf. Habe eigentlich alle Dialoge (mit Steurelementen) bereits erstellt. Das scheint ja nicht das Problem zu sein, da ich diese ja laut Deiner Beschreibung einfach nur von CFormView anstatt von CDialog ableiten muss, richtig?

    Fast. Du musst mit den Stilen aufpassen.
    Erstell einfach mal ein Formular und guck, was da so die Eigenschaften sind. (Aus dem Kopf weiß ich die jetzt auch nicht.)
    Oder du erstellst ein leeres Formular und kopierst alle Control rüber. Wenn du nicht allzuviele Dialoge hast, macht das wohl weniger Arbeit. 🙂

    Stefan H schrieb:

    Gut, mein Programm teilt sich in 2 Bereiche auf. Aber nur in einem Bereich möchte ich diese Buttons (Toolbar) verwenden. Also sollte die Verarbeitung der KLICKS nicht in MainFrame sondern schon in einer anderen Doc behandelt werden.
    Aufbau:

    CMainFrame
           CDoc1                      CDoc2
        CHauptdialog
    UDLG1  UDLG2  UDLG3 ...
    

    Die einzelnen Unterdialoge sind vom Typ CDialog und von CHauptdialog abgeleitet.
    Die Verarbeitung erfolgt in der Klasse CDoc1. (-> nur 1 Doc für alle Unterdialoge!)

    Ooookay... damit ist das aus der FAQ nicht für dich geeignet. 😞
    Weil da hat jeder View sein eigenes Doc. Aber vielleicht hilft da das: http://www.codeproject.com/docview/replacingview.asp

    Stefan H schrieb:

    Warum geht das denn in einer dialogfeldbasierenden Anwendung so einfach und bei einer SDI muss man so einen rießen Aufwand betreiben?!?!? 😕

    Da habe ich auch keine Erklärung. Ich denke mir einfach: Microsoft hat sich überlegt, was die Leute wohl so brauchen und dabei einiges vergessen. Und das muss man jetzt eben mühselig selber machen. 😞



  • Hallo estartu_de,
    Danke für Deine Mühe und den Link. Werde mich der Sache mal annehmen....! :p
    Da ich echt einige Dialoge (8 an der Zahl) mit sehr vielen Steuerelementen und entsprechenden Membervariablen ja schon erstellt habe.....sträube ich mich noch ein wenig dagegen diese Arbeit NOCH einmal zu machen.

    Jeder besch... Installations-Wizard sieht doch so aus....! Von daher kann ich es echt nicht glauben das MS da bei einer SDI-Anwendung dran gespart hat. 😡

    Nun gut, dann mal noch einen schönen Tag und viel Erfolg.

    Gruss
    S.



  • Wizards sind wieder was anderes.
    Damit habe ich mich aber noch nicht befasst. 😞

    Viel Erfolg. 🙂


Anmelden zum Antworten