"Save" manuell auslösen
-
Hey, nochmal ne Frage...
Wie kann ich den "Save"-Befehl manuell auslösen. Ich hätte gerne, dass meine Eingaben automatisch in ein bestimmtes File (Name wird vorgeben) gespeichert werden und sich das Programm dann so verhält wie man den Knopf/Menueintrag gedrückt hätte.
Wenn ich es über CFile/Serialize mache, wird der Fentertitel und die History nicht aktualisiert!Weiss jemand was genau passiert wenn ich Speicher drücke?
-
AfxGetMainWnd()->SendMessage(WM_COMMAND, ID_FILE_SAVE);
-
Dann geht aber ein Dialog auf der nach dem Dateinamen fragt. --> Denn habe ich aber schon
-
Dann liegt das an deiner Speichernfunktion. Wie heißt denn der Menüpunkt, den du "drücken" willst?
Tausch doch mal ID_FILE_SAVE dagegen.
-
Vielleicht habe ich mich falsch ausgedrückt:
Ich will das Doc an einer bestimmen Stelle speichern, OHNE das vorher "Speichern unter..." gedrückt wurde. Der Dateiname wird aus dem Projektdaten zusammengesetzt.
Wenn ich jetzt
AfxGetMainWnd()->SendMessage(WM_COMMAND, ID_FILE_SAVE);
aufrufe, wird ja zuerst der "Speichern unter..." Dialog angezeigt (ist ja eigentlich auch richtig, nur in diesem Fall nicht...)
-
Ich habe dich schon richtig verstanden.
Das Problem ist, dass du eine Funktion anders nutzt, als ihr Name vorgibt.
ID_FILE_SAVE: Name ist bekannt, einfach nur speichern. (Strg+S im VS)
ID_FILE_SAVE_AS: Name ist unbekannt, muss eingegeben werden, danach genauso wie ID_FILE_SAVE.Du hast gefragt, wie man einen Menüpunkt von Hand anschubst, das habe ich beantwortet. Leider hast du keinen passenden - also bastel einen.
Zeig doch mal den Code zum Speichern, vielleicht kann man das anpassen.
PS: Bin aber gleich weg...
-
Folgender Code zum speichern (in CDoc-Klasse):
//Hier wird dem Doc der FileName untergeschoben m_strPathName = szProjectFile; //Jetzt speichern... AfxGetMainWnd()->SendMessage(WM_COMMAND, ID_FILE_SAVE);
-
Und im MainFrame? Das was du aufrufst passt ja nicht.
-
m_strPathName ist eine Member von CDoc. Im MainFrame wird (meines Wissens) nur wieder eine Methode von CDoc aufgerufen!
-
Dann musst du mal nachgucken, die Mechanismen kenne ich noch nicht...
-
Ich habs!
Geht eigentlich ganz einfach (wenn mans weiß):
SetPathName(szProjectFile,TRUE); OnSaveDocument(szProjectFile);
estartu_de: Danke für die Hilfe und die guten Tipp's
-
Gerne gescheben - dafür schreib ich jetzt deine Lösung ab.