[VC++] Child-Form und Dateinamen



  • Hi,

    dieses Board ist mir wärmstens ans Herz gelegt worden, ich hoffe, ihr könnt mir helfen, langsam verzweifle ich mit meinem Problem:

    Ich habe ein Problem beim Erstellen eines VC++-Projektes, bei dem ich
    nun seit mehreren Tagen schon nicht weiter komme. Mein Projekt ist
    eine MDI, erstellt unter VC++7.0 mit Hilfe des MFC-Assistenten.

    Wenn ich das Projekt starte, öffnet sich das Main-Fenster und direkt
    dazu eine (leere) CHILD-Form. Das allerdings möchte ich unterbinden.
    Die Child-Form soll sich nur öffnen, wenn ich eine Datei öffne. (Das
    funktioniert bereits einwandfrei.) Mit anderen Worten: Beim Start
    soll sich NUR das Hauptfenster öffnen. Nur finde ich nirgendwo den
    Programm-Code, der mich das einstellen lässt.

    Zum zweiten öffnet zwar die Auswahl einer Datei bereits jetzt eine
    neue CHILD-Form, allerdings habe ich keinen Zugriff auf den
    Dateinamen. Über welche Variable kann ich darauf zugreifen?

    Vielen Dank im Voraus, freue mich über jede Anregung, die mich weiter bringen könnte...
    Gruß,
    Sebezahn



  • Zu 1.

    BOOL C...App::InitInstance()
    {
      // ...
    
      CCommandLineInfo cmdInfo;
      ParseCommandLine(cmdInfo);
      // Verteilung der in der Befehlszeile angegebenen Befehle. Es wird FALSE zurückgegeben, wenn
      // die Anwendung mit /RegServer, /Register, /Unregserver oder /Unregister gestartet wurde.
      if (!ProcessShellCommand(cmdInfo))
        return FALSE;
      if( cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew)
        cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
    
      // ...
    }
    

    Zu 2.

    CDocument::GetPathName();
    


  • Hi,

    erst einmal vielen Dank, Tip1 hat mehr als wunderbar geklappt. Nur mit Tip2 habe ich eine Verständnisfrage:

    die methode GetPathName() funktioniert bei mir nicht in der OnInitialUpdate(). Das ganze sieht halt so aus:

    void CloganguiView::OnInitialUpdate()
    {
    	CFormView::OnInitialUpdate();
    	ResizeParentToFit();
    
    	// *** Eigener Code
                char filename[80] = "log.log"; // !!!!!!!! Hier statt dessen das Einlesen des Filenames...
                mystats.open(filename);
    

    Nur habe ich hier nicht Zugriff auf die GetPathName(). Muss ich da noch was vorstellen? Sorry für diese Anfängerfragen, aber ich beschäftige mich noch nicht sehr lange mit C++ und bin mit den ganzen Pointern und Arrays und Klassen und so weiter etwas erschlagen worden...

    Dennoch vielen Dank für deine Antwort!!!

    Gruß
    Sebezahn



  • Also, ich bin jetzt dahinter gekommen, dass ich innerhalb der Serialize-Funktion zugriff auf die GetPathName() habe. Nur bringt mir das nix, da ich von hier aus wieder in meine CLoganguiView-Klasse keinen Zugriff habe, obwohl ich das char filename da schon in die public-Deklarationen aufgenommen habe. Also auch nix... 😞

    Ich muss wirklich von INNERHALB der View-Klasse Zugriff auf den Dateinamen haben... irgendwie.

    Gruß
    Sebezahn


Anmelden zum Antworten