tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Endurion
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
589
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    stefan-rw stefan-rw ist offline Mitglied
    Registriert seit
    Oct 2008
    Beiträge
    24
    Hallo und ein frohes neues Jahr.

    Es geht schon wieder gut los. Habe schon wieder ein Problem:

    Ich habe mit VS ein MDI-Projekt erstellt. Dieses Projekt besitzt 3 verschiedene Ansichtsklassen, die alle von CFormView abgeleitet sind.

    Nun fragt das Projekt beim Start nach, welcher Typ geöffnet werden soll. Das gleiche passiert, wenn man im Menu "Datei neu" wählt.

    Meine Fragen:
    1. Wie kann ich diese Frage beim Programmstart abstellen ?
    2. Wie kann ich dem Programm zur Laufzeit mitteilen, welchen Typ es erstellen soll, wenn auf "Datei neu" geklickt wird.

    Ich möchte dem Benutzer also keine Auswahlmöglichkeit geben, sondern durch das Programm den zu erstellenden Typ festlegen.

    Danke für eure Hilfe

    Stefan
     

  2. #2
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    Zu 1)
    MFC ist so eingestellt, dass es beim Programmstart ein leeres Dokument erstellt. Deshalb fragt er da auch einmal. Das läuft aber über den gleichen Code wie 2:

    Zu 2)
    In der App-Klasse OnFileNew überschreiben. Das wird aufgerufen, wenn ein neues Dokument erstellt wird. Dort kannst du dann bestimmen, welcher Typ geöffnet werden soll.
    In InitInstance der App-Klasse werden die Vorlagen für die Dokumente erstellt (irgendwo gibt es da new MultiDocTemplate). Die dabei erstellten Pointer merkst du dir. Wenn du dann von einem der Typen ein neues Dokument erstellen willst, rufst du die folgenden Funktionen auf:

    CDocument* pDoc = pDocTemplate->CreateNewDocument();
    pFrameWnd = theApp.pDocTemplate->CreateNewFrame( pDoc, NULL );
    pDocTemplate->InitialUpdateFrame( pFrameWnd, pDoc, TRUE );

    // evtl. noch:
    pDoc->SetTitle( _T( "Neues Dokument" ) );


    Wenn du eine Datei mit einem bestimmten Template öffnen willst, dann genügt Folgendes:

    pDocTemplate->OpenDocumentFile( szFile );
    stefan-rw bedankt sich. 

  3. #3
    stefan-rw stefan-rw ist offline Mitglied
    Registriert seit
    Oct 2008
    Beiträge
    24
    Prima... funktioniert wie ne eins .... vielen vielen dank.

    Habe gestern noch den ganzen tag im Web nach nem Tutorial über MDI gesucht, kannste verjessen wa ?!

    Also nochmal vielen vielen Dank. es tut einwandfrei so.

    Gruss

    Stefan
     

Ähnliche Themen

  1. Formular aus Listenfeldauswahl öffnen
    Von adular im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 25.03.11, 09:00
  2. bestimmtes ParentNode auf bestimmtes ChildNode prüfen
    Von Moszeed im Forum Javascript & Ajax
    Antworten: 6
    Letzter Beitrag: 22.11.07, 10:06
  3. Formular in Formular öffnen
    Von Ceza im Forum Delphi, Kylix, Pascal
    Antworten: 3
    Letzter Beitrag: 15.07.06, 06:20
  4. Ein Formular öffnen
    Von reBourne im Forum C/C++
    Antworten: 9
    Letzter Beitrag: 02.02.05, 10:33
  5. Ein Formular mehrmals öffnen
    Von ShadowFire im Forum Delphi, Kylix, Pascal
    Antworten: 1
    Letzter Beitrag: 31.01.05, 11:24