Veröffentlicht 19. März 200322 j Hallo, ich bin grade dabei mir die Funktionsweise der MDI-Anwendungen zu verinnerlichen. Dabei drängt sich mir folgende Frage auf: Wie kann man verschiedene Views aufrufen? Mir ist klar das ich dazu DocTemplates erstellen muss und da halt den ensprechenden View (im folgenden Listing halt CMeinView) festlegen kann. CMultiDocTemplate* pDocTemplate; pDocTemplate = new CMultiDocTemplate( IDR_EEEETYPE, RUNTIME_CLASS(CMeinDoc), RUNTIME_CLASS(CChildFrame), RUNTIME_CLASS(CMeinView)); AddDocTemplate(pDocTemplate); Muss ich nun aber den View, oder das Dokument öffnen, oder geht's vielleicht doch irgendwie anders)?!? Hab schon probiert das ganze durchzudebuggen aber da komme ich nicht sehr weit, da wenn ich auf Datei->Neu klicke wird ja die Methode der Basisklasse aufgerufen. ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
19. März 200322 j Ich versuche die Frage noch mal anders zu stellen: Wie kann ich manuell ein bestimmtes Document und den entsprechenden View öffnen, ohne dass mir der Dialog zur Auswahl des Documents angezeigt wird. (Passiert ja wenn ich über CWnd::OnFileNew gehe und mehrere DocTemplates habe) Ich möchte also z.B. bei Klick auf Button1 das Document1, bei Klick auf Button2 das Document2 usw öffnen. (@Klotzkopp: Das soll kein Threadpushing werden, ich habe nur versucht die Frage sinnvoller zu stellen )
19. März 200322 j Eigentlich sollte das mit CDocTemplate::CreateNewDocument gehen. Du kannst ja mal in diesen Thread schauen, da ging es um ein ähnliches Thema.
19. März 200322 j Danke, ich habs dann auch selber rausbekommen (Wer suchet der findet ) Wen es Interessiert, das ganze sieht dann so aus ON_COMMAND(ID_DOCS_DOC1, OnDoc1) ... ... void CAnwendungApp::OnDoc1() { CDocTemplate *pTemp; POSITION pos; if(pos = GetFirstDocTemplatePosition()) { pTemp = GetNextDocTemplate(pos); pTemp->OpenDocumentFile(NULL); } }
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.