CFileDialog Problem



  • Hallo erstmal,

    also ich will den CFileDialog zum speichern benutzen. Die Datei wird auch angelegt und der Inahlt ist auch io.

    Mein Problem besteht darin, dass sich Win2k irgendwie den Speicherort merkt.

    Ich habe noch einen Auswahldialog für Bilder der auch im Programmverzeichniss liegt. Wenn ich aber diesen Dialog öffne findet das Programm nichts mehr.

    Speicher ich aber im Programmverzeichniss, klappt auch mein Bilderdialog wieder.

    Muß ich irgendeinen Wert nach dem Speichern zurücksetzen?

    Hier noch der Code zum öffnen von CFileDialog:

    void CTestDlg::OnBnClickedSpeichern()
    {
    	CFileDialog dlg(false,"hlb",0,NULL,0,this,0);
    	CStdioFile SaveFile;
    	dlg.DoModal();
    	Buffer = dlg.GetPathName();
    	if(!dlg.GetPathName().IsEmpty())
    	{
    		SaveFile.Open(dlg.GetPathName(), CFile::modeCreate | File::modeWrite);
    			SaveFile.WriteString(("Bild1=" + s_Bild1));
    		SaveFile.Close();
    	}
    }
    

    Ich denke grad in meiner Verzweiflung daran mir den Pfad des Programmes in einem RegKey zu speichern.

    mfg blub 😕



  • Das current directory wird geändert. Wie holst du dir das Program-Verzeichnis? Mit GetCurrentDirectory? Dann liegt da das Problem, nimm GetModuleFile(NULL,..)



  • Hi CMatt,

    also das mit dem GetModuleFileDingens funzt gut, nur wie lautet das Gegenstück dazu? Wie kann ich nach dem schließne und Speichern wieder den normalen Pfad erhalten?

    Das klappt nicht:

    SetCurrentDirectory(BufferDir);
    

    Oder hab ich da wieder die MSDN falsch verstanden?

    MfG blub 😕



  • GetModuleFile hat keine gegenstück. Das gibt dir den path deiner exe (wenn mit NULL aufgerufen) zurück und den path der exe kannst schlecht änderen, die ist da, basta.

    Zum current directory:
    Wenn du in dem CFileDialog ein file auswählst und auf ok klicks wird der path dieser datei mit SetCurrentDirectory gespeichert. Das hat den vorteil: beim nächsten öffnen des dialogs kann über ein GetCurrentDirectory dort weiter gesucht werden, wo du vorhin aufgehöhrt hast und startest net jedes mal aus einem programm-verzeichnis mit der suche.



  • Aso, gut wieder was gelernt, danke erstmal für die Erklärungen, das hilft mir schon unheimlich weiter.

    MfG blub 😕


Anmelden zum Antworten