UpdateAllViews ...
-
In einer MDI Anwendung leite ich die View-Klasse von CEditView ab. Jedem
Edit-Fenster ist eine Datei zugeordnet. Was bezweckt die CDocument-Funktion
"UpdateAllViews". Kann es sein, dass bei CEditView kein Effekt bewirkt wird ?
-
Schon klar, dass die MDI - Fenster keine verschiedene Views sind. Richtet
UpdateAllViews irgend etwas an, ausser dass es nicht funktioniert ?
-
Folgenden Text habe ich bei meinen ersten Versuchen mit VC++ geschrieben.
POSITION dpos = GetDocTemplate()->
GetFirstDocPosition();
CDocument pD;
CFile f;
CString DateiName;
while ( dpos != NULL )
{
pD = GetDocTemplate()->
GetNextDoc(dpos);
DateiName = pD->GetTitle();
f.Open(pD->GetPathName(), CFile::modeRead);
CArchive ar(&f, CArchive::load);
ar.m_pDocument = pD;
pD->Serialize(ar);SetModifiedFlag(true); // ist nutzlos
UpdateAllViews(NULL, 0 ,NULL); // ist nutzlosf.Close();
ar.Close();
};Der Text bewirkt, dass die MDI Edit-Fenster von den Dateien her,
neu geschrieben werden. Da ich nicht dauernd meinen Quelltext
neu speichern will ( auf 8 Datenträger, eine halbe Stunde )
wollte ich wissen ob man den nutzlosen Text stehen lassen kann.
-
GeorgC++ schrieb:
Was bezweckt die CDocument-Funktion
"UpdateAllViews". Kann es sein, dass bei CEditView kein Effekt bewirkt wird ?GeorgC++ schrieb:
Richtet
UpdateAllViews irgend etwas an, ausser dass es nicht funktioniert ?Welchen Effekt erwartest du denn? Diese Funktion löst nur OnUpdate-Aufrufe in den View-Klassen aus und ist dafür gedacht, andere Views zu informieren, dass eventuell die Anzeige in diesen anderen Views aktualisiert/geändert werden muss. Wenn dort nichts eigenes programmiert wurde, dann passiert nicht sehr viel.
GeorgC++ schrieb:
[...]wollte ich wissen ob man den nutzlosen Text stehen lassen kann.
Wenn du es nicht benötigst, und das sieht hier so aus, es wird nur gespeichert (keine Abhängigkeit der Anzeigen), dann lass es weg (in der while-Schleife muss das auch nicht in jedem Durchlauf aufgerufen werden, wenn, dann ausserhalb).
MfG,
Probe-Nutzer
MfG