Визуальное программирование и MFC



         

Сохранение и восстановление документов - часть 3


// Вызов метода базового класса. // Он вызывает метод Serialize для записи данных CDocument::OnSaveDocument(DlgSaveAs.GetPathName());

status_new=FALSE; // документ уже не новый } }

Запись и восстановление данных без помощи фрхивных файлов

Если программист не желает производить запись и восстановление документов при помощи архивных файлов и с использованием метода Serialize, то вместо использования в приложении методов CDocument::OnSaveDocument и CDocument::OnOpenDocument базового класса документов он может использовать переопределения этих методов OnSaveDocument и OnOpenDocument в своем классе документа.

В переопределенном уже ранее методе OnOpenDocument класса документа (см. выше) вместо вызова по умолчанию метода базового класса CDocument::OnOpenDocument(pszPathName)) следует:

  • вызвать метод DeleteContents;
  • объявить объект file класса CFile или производного от него;
  • открыть для объекта file файл с именем pszPathName (передается в метод в качестве параметра) в режиме "для чтения";
  • считать данные из файла file и разместить их в элементах класса документа.
  • Изменить в методах OnFileSaveAs и OnFileSaveAs (см. выше) вызовы метода CDocument::OnSaveDocument на вызовы OnSaveDocument. Затем переопределить метод OnSaveDocument в классе документа приложения, для чего в определении класса документа необходимо объявить виртуальный метод OnSaveDocument, а в реализации класса документа необходимо его определить. Причем в переопределенном методе OnSaveDocument выполнить следующие действия:

  • объявить объект file класса CFile или производного от него;
  • открыть для объекта file файл с именем pszPathName в режиме для "записи";
  • записать данные из элементов класса документа в файл file.



  • Содержание  Назад