Класс области просмотра управляет отображением документа. Область просмотра перекрывает главное окно, которому, однако, предоставляется возможность управлять основными функциями работы с окном, такими как масштабирование и минимизация. Класс области просмотра порождается от класса СView или производных от него, например класса CScrollView (поддерживающего полосы прокрутки). Данный класс также должен быть объявлен динамическим с помощью макроса DECLARE_DYNCREATE(). Этот класс предназначен для обработки действий, выполняемых пользователем в области просмотра.
Класс CView содержит большое число функций, из которых в классе области просмотра должна быть переопределена по крайней мере одна: OnDraw(). Она вызывается, когда содержимое области просмотра должно быть изменено при перекрытии ее другим окном или изменении данных.
Прототип функции OnDraw() следующий:
virtual void CView::OnDraw(CDC *pDC)=0;
Как видите, это виртуальная функция, которая может быть переопределена в любом из производных от CView классов. Параметр pDC является указателем на контекст устройства, связанный с текущей областью просмотра. Таким образом, нет необходимости явно получать контекст устройства.
Ниже приведен образец класса, предназначенного для работы с областью просмотра:
class CSampleView : public CView
{
DECLARE_DINCREATE (CSampleView)
// закрытая часть класса
public:
void OnDraw(CDC *DC) ;
// открытая часть класса
DECLARE_MESSAGE_ MAP()
};
|