tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
9
ZUGRIFFE
552
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Rearhh Rearhh ist offline Mitglied Bronze
    Registriert seit
    Feb 2005
    Beiträge
    34
    Ich habe ein Dokument, in denen Daten ausgewertet werden, die ich einmal als Tabelle und einmal als Graphen darstellen möchte. Ich verwende eine MDI-Architektur.
    Nun habe ich Probleme, der Dokumentenklasse eine zweite View für den Graphen aufzuzwingen:

    gibt es da einen relativ einfachen Weg z.B. via AddView Ich hab das MSDN-Beispiel mir zur Vorlage genommen, aber das Programm läuft kein Stück....
     

  2. #2
    Avatar von lukasS
    lukasS lukasS ist offline Mitglied Brokat
    Registriert seit
    Jun 2003
    Ort
    Bochum
    Beiträge
    264
    Hallo,

    ich habe auch 2 Dokumente in meinem Projekt. Denke ich kann dir helfen.
    Du benötigst für dein 2tes Dokument eine eigene zusätzliche CDocument- und CFormView-Klasse

    - Erstelle dir z. B. einen zusätzlichen Dialog, also dein 2tes Dokument in der Resource-Ansicht und dazu zwei von CDocument und CFormView abgeleitete Klassen (bsp. CDocNr2 und CViewNr2).
    - Dann benötigst du in deiner App-Klasse eine Membervariable vom Typ CMulitDocTemplate (bsp. CMultiDocTemplate* pDocTemplateNr2).
    - Beim ::InitInstance() der App-Klasse dann folgendes

    Code :
    1
    2
    3
    4
    5
    6
    7
    
     
        pDocTemplateNr2= new CMultiDocTemplate(  
            IDR_NEUERDIALOG,
            RUNTIME_CLASS(CDocNr2 ),
            RUNTIME_CLASS(CChildFrame), // custom MDI child frame
            RUNTIME_CLASS(CViewNr2));
        AddDocTemplate(pDocTemplateNr2);

    Falls das zu schwierig ist, sags nochmal bescheid, dann kann ich es dir nochmal erklären.
     

  3. #3
    Avatar von jokey2
    jokey2 jokey2 ist offline Mitglied Smaragd
    Registriert seit
    Nov 2004
    Beiträge
    1.235
    @lukasS: Ich glaube, Du hast das mißverstanden. Er will keinen 2. Dokumenttyp, sondern eine 2. ansicht auf die Daten seines Dokumentes.
    @Rearhh:Ich glaube, was Du suchst ist CFrameWnd::CreateView(...). Ein neuer View wird dem Rahmenfenster hinzugefügt.
     

  4. #4
    Avatar von lukasS
    lukasS lukasS ist offline Mitglied Brokat
    Registriert seit
    Jun 2003
    Ort
    Bochum
    Beiträge
    264
    Oh, sorry

    Vergiss einfach, was ich gesagt habe.
     

  5. #5
    Rearhh Rearhh ist offline Mitglied Bronze
    Registriert seit
    Feb 2005
    Beiträge
    34
    *konfus*

    Ich weiss nun selber nicht mehr genau was ich will....

    jokey2 hat Recht, ich hätte gerne eine zweite Ansicht. Allerdings komm ich gerade ins Grübeln, dass ein zweites Doc/View vielleicht gar nicht so verkehrt wäre. Dann hätte ich ein Doc/View zur Datenverwaltung und ein anderes zur Datenauswertung...... ufff.....

    @lukasS: danke für Anleitung. Die hat mir sehr geholfen, weil sie mir genau die Bausteine geliefert hat, die ich noch brauchte um den Vorgang vollends zu verstehen. Du hast quasi nen echten Volltreffer gelandet. Danke. Aber ich komm nicht mehr ganz weiter. Ich hab eine zweite Doc/View erschaffen, aber wie bringe ich sie zur Anzeige. Ich glaube, ich muss die OnNewDocument() - Funktion meines 2. Dokumentes aufrufen, richtig? Weiss du, wie ich einen Zeiger auf dieses Dokument kriege? Ich bin, was das angeht, noch richtig grün hinter den Ohren :/

    @jokey2: danke für den Hinweis mit dem CreateView. Das trifft wahrscheinlich genau das, was ich suche und es wird mich jetzt eine gute Weile mit der MSDN beschäftigen
     

  6. #6
    Avatar von lukasS
    lukasS lukasS ist offline Mitglied Brokat
    Registriert seit
    Jun 2003
    Ort
    Bochum
    Beiträge
    264
    Versuchs mal mit der Neuerstellten Membervarialbe pDocTemplateNr2->OpenDocumentFile(NULL), dann landest du in der View beim OnInitialUpdate()

    Lukas
     

  7. #7
    Rearhh Rearhh ist offline Mitglied Bronze
    Registriert seit
    Feb 2005
    Beiträge
    34
    PERFEKT! Har har

    You saved my day...

    Vielen Dank.
     

  8. #8
    Avatar von lukasS
    lukasS lukasS ist offline Mitglied Brokat
    Registriert seit
    Jun 2003
    Ort
    Bochum
    Beiträge
    264
    Kein Problem, dazu ist ja das Forum da.

    Lukas
     

  9. #9
    Rearhh Rearhh ist offline Mitglied Bronze
    Registriert seit
    Feb 2005
    Beiträge
    34


    Weils so schön ist... muss ich noch einen Kontext (CCreateContext) oder deratiges erstellen? Bei pDocTemplateNr2->OpenDocumentFile(NULL) werden zwar sowohl Document und View erzeugt, jedoch bekomm ich, auf Teufel komm raus, via GetDocument(), keine Verbindung für die View zum Document....
     

  10. #10
    Avatar von lukasS
    lukasS lukasS ist offline Mitglied Brokat
    Registriert seit
    Jun 2003
    Ort
    Bochum
    Beiträge
    264
    Weiß nicht, ob dir das weiterhilft, habe mal bißchen 'kot' reingeschrieben, aber nicht kompiliert. Wenn du bsp aus der App-Klasse auf eine bestimmte View zugreifen willst, dann:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    POSITION posDoc = pDocTemplateNr2->GetFirstDocPosition();
    pDocTemplate->OpenDocumentFile(NULL);
     
    while(posDoc)
    {
        CDocumentNr2* pDoc = (CDocumentNr2*)pDocTempFiles->GetNextDoc(posDoc);
        POSITION posView = pDoc->GetFirstViewPosition();
        CString s = pDoc->GetTitle();//Kannst dir hier sogar den Titel von deinem Dokument holen
        while(posView)
        {
            CViewNr2* pView = (CViewNr2*)pDoc->GetNextView(posView);
            //pView ist jetzt das View, worauf du zugreifen willst.
        }
    }

    Sieht vielleicht Brutal aus, ist aber im Prinzip einfach, weiß nicht, ob es einen einfacheren Weg gibt, aber so habe ich das auch erfolgreich gemacht.

    Lukas
    Geändert von lukasS (20.04.05 um 18:53 Uhr) Grund: Rechschreibung :(
     

Ähnliche Themen

  1. Mehrere autocompleter formulare in einem Dokument
    Von z0oL im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 24.03.09, 19:55
  2. Mehrere Views in SplitterWindows
    Von Squeegee im Forum VisualStudio & MFC
    Antworten: 2
    Letzter Beitrag: 10.11.05, 18:43
  3. Eclipse RCP: mehrere Views öffnen
    Von Vatar im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 18.09.05, 13:00
  4. Mehrere Solver in einem Dokument
    Von JFHunter im Forum Office-Anwendungen
    Antworten: 0
    Letzter Beitrag: 26.05.05, 10:45
  5. C / C++ mehrere Views
    Von uweb im Forum C/C++
    Antworten: 6
    Letzter Beitrag: 11.07.03, 21:11