Класс CDocument содержит ряд специальных функций-членов.
Функция UpdateAllViews()
Когда в документ вносятся изменения, программа должна вызывать функцию UpdateAllViews(). Эта функция посылает всем областям просмотра, связанным с данным документом, сообщение о том, что экранное представление этих областей должно быть изменено. Функция UpdateAllViews() имеет следующий прототип:
void CDocument:: UpdateAllViews(CView *Sender, LPARAM lParam=0, CObject *ObPtr=NULL);
Здесь параметр Sender является указателем на объект области просмотра, в которой было внесено изменение в документ. Если этот параметр равен NULL, значит необходимо обновить содержимое всех областей просмотра, связанных с документом. Параметры lParam и ObPtr могут использоваться для оптимизации процесса обнов¬ления областей просмотра. Для всех областей просмотра, связанных с документом (кроме области, определяемой параметром Sender), функция UpdateAllViews() вызы¬вает функцию CView::OnUpdate(). (Конечно, сели параметр Sender равен NULL, то изменению подвергнутся все области просмотра.) При необходимости, функцию OnUpdate() можно переопределить.
Функция SetModifiedFlag()
Когда в документ вносятся изменения, должна также вызываться функция SetModifiedFlag(). После вызова этой функцию пользователь получит предупреждение о том, что перед закрытием документа его необходимо сохранить. Прототип функции таков:
void CDocument:: SetModifiedFlag(DOOL IsModified=TRUE);
Если параметр IsModified не равен нулю, то устанавливается флаг модификации документа. В противном случае этот флаг сбрасывается.
Класс CView тоже содержит большое число различных функции Одна из наиболее часто используемых функций называется GetDocument(). Она возвращает указатель на объект класса CDocument, связанный с областью просмотра. Эта функция используется в тех случаях, когда область просмотра должна получить доступ к данным, хранящимся в документе, в частности при отображении этих данных. Она также позволяет вызывать функции класса CDocument из класса области просмотра. Прототип функции GetDocument() следующий:
CDocument *CView::GetDocument() const;
|