ERLEDIGT
JA
JA
ANTWORTEN
9
9
ZUGRIFFE
552
552
EMPFEHLEN
-
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....
-
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.
-
@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.
-
Oh, sorry
Vergiss einfach, was ich gesagt habe.
-
*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
-
Versuchs mal mit der Neuerstellten Membervarialbe pDocTemplateNr2->OpenDocumentFile(NULL), dann landest du in der View beim OnInitialUpdate()
Lukas
-
PERFEKT! Har har
You saved my day...
Vielen Dank.
-
Kein Problem, dazu ist ja das Forum da.
Lukas
-

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....
-
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.
LukasGeändert von lukasS (20.04.05 um 18:53 Uhr) Grund: Rechschreibung :(
Ähnliche Themen
-
Mehrere autocompleter formulare in einem Dokument
Von z0oL im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 24.03.09, 19:55 -
Mehrere Views in SplitterWindows
Von Squeegee im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 10.11.05, 18:43 -
Eclipse RCP: mehrere Views öffnen
Von Vatar im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 18.09.05, 13:00 -
Mehrere Solver in einem Dokument
Von JFHunter im Forum Office-AnwendungenAntworten: 0Letzter Beitrag: 26.05.05, 10:45 -
C / C++ mehrere Views
Von uweb im Forum C/C++Antworten: 6Letzter Beitrag: 11.07.03, 21:11





Zitieren
Login






