FILE/OPEN und FILE/SAVE

wlado

Grünschnabel
hy! hab ne frage!

wie kann ich das machen, dass wenn mein programm endet sich vorher FILE/SAVE ausführt (bzw. uns das prog. fragt ob wir die verenderungen SAVEN wollen)?

also: in der methode

int CTIApp::ExitInstance()
{
// TODO: Add your specialized code here and/or call the base class
CMainFrame::OnWndMsg(ID_FILE_SAVE); <-- fehler
return CWinApp::ExitInstance();
}

und wenn das programm startet, sollte sich FILE/OPEN (eine bestimmte datei zbs.: "test.txt") von alleine ausführen!

wie soll ich das problem lösen?

danke für eure hilfe
 
Mach das nicht in Init/ExitInstance sondern fang die Messages von deinem Hauptfenster ab und erstell Methoden mit dem Klassenassistenten. Dann packst du dein Speichern am Ende in die OnClose (WM_CLOSE abfangen) und das Laden am Anfang meinetwegen in OnCreate (WM_CREATE).
 
Falls das Document/View-Modell verwendet wird (du hast eine von CDocument abgeleitete Klasse im Projekt), wäre es günstiger, für deine KlasseCDocument::OnCloseDocument() zu überschreiben und das Speichern darin zu erledigen. Wenn das Fenster geschlossen wird, sind alle Dokumente nämlich schon futsch.

--
Korrektur: Kann sein, dass ich mich irre. :rolleyes:
 
Zuletzt bearbeitet:
Ja ich verwende das Document/View-Modell aber wie erledige ich das speichern? mit SendMessage(WM_COMMAND, ID_FILE_SAVE); oder wie kann ich das ID_FILE_SAVE aufrufen?

Code:
void CmyappDoc::OnCloseDocument() 
{
	SendMessage(WM_COMMAND, ID_FILE_SAVE); <-geht nicht 
	CDocument::OnCloseDocument();
}
:(
 
Der Code zum Speichern sollte sich in CDeinDoc::Serialize(CArchive& ar) befinden bzw. von dieser aufgerufen werden. Hast du das? Dann sollte es reichen, wenn du in CDeinDoc::OnCloseDocument() CDeinDoc::SaveModified( ) aufrufst. Das testet, ob dein Doc geändert wurde (Achtung! CDeinDoc::SetModifiedFlag() musst du natürlich auch irgendwo machen!) und speichert es dann.

Hilft dir das weiter?
 
Zurück