Класс CView
Класс CView реализует основные возможности для работы с отображениями. Отношения между классом отображения, классом окна-рамки и классом документа устанавливаются объектом CDocTemplate. Вызов конструктора нового отображения и сопоставление его документу выполняется при открытии пользователем нового окна или при разделении существующего окна.
Один объект "отображение" может быть сопоставлен только одному документу, однако один документ может иметь несколько сопоставленных ему отображений.
Отображения обрабатывают сообщения, зафиксированные в таблице сообщений.
Отображения выполняют только показ данных документа и не отвечают за сохранение данных. Документ предоставляет отображению необходимую информацию о данных посредством вызова объектом "отображение" методов документа. Для инициализации отображения, сопоставленного документу, следует вызвать метод OnInitialUpdate .
Для внесения изменений в данные отображение, как правило, вызывает метод CDocument::UpdateAllViews, который инициирует вызов методов OnUpdate для всех других отображений. По умолчанию реализация метода OnUpdateопределяет всю клиентскую область как недостоверную. Этот метод может быть переопределен.
Для того чтобы использовать класс отображений Cview, следует:
- объявить производный класс от Cview;
- реализовать метод OnDraw, выполняющий отображение экрана или вывод на печать.
В классе View объявлены методы для реализации архитектуры "документ-отображение", включая следующие:
- DoPreparePrinting - метод вызывается из переопределяемого метода OnPreparePrinting для отображения диалогового окна Print и создания контекста устройства принтера.
- GetDocument - метод возвращает указатель на объект "документ", сопоставленный данному отображению, или NULL, если отображение не пристыковано ни к какому документу;
- OnActivateView - метод вызывается при активации или деактивации отображения;
- OnActivateFrame - метод вызывается при активации или деактивации окна-рамки, содержащего отображение;
- OnUpdate - вызов этого метода инициируется при изменении отображения документа.