Visual C++. Описание стандартных классов - CView

ОГЛАВЛЕНИЕ


CView

Класс CView обеспечивает основные функциональные возможности определяемых пользователем классов представления. Класс представления ассоциирован с классом документа и осуществляет интерфейс между документом и пользователем: класс представления реализует отображение документа на экране или принтере, а также передает информацию о реакции пользователя в документ. Класс представления является производным от класса CWnd. Одна и та же рабочая область окна может совместно использоваться несколькими классами представления. Связь между классом представления и классом окна осуществляется в шаблоне документа. Когда пользователь открывает новое окно или разбивает существующее, шаблон документа создает новый класс представления и присоединяет это к документу. Класс представления может быть присоединен только к одному документу, но к одному документу могут быть присоединены несколько классов представления. Эта ситуация может возникнуть при отображении документа в разделенном окне или в нескольких дочерних окнах в многооконного приложения (MDI). Приложение может поддерживать несколько различных классов представления, соответствующих одному и тому же классу документа. Например, программа обработки текстов могла бы обеспечивать как просмотр текста документа, так и просмотр его иерархической структуры, в котором содержатся только заголовки разделов. Эти различные классы представления могут выводить информацию в различные окна или в различные панели разделенного окна, если окно открыто в этом режиме. Класс представления может получать информацию от пользователя через различные устройства, например, с клавиатуры, через щелчки и перемещения мыши, из команд меню, инструментальных панелей или полос прокрутки. Сообщения в данный класс поступают из связанного с ним окна. Если класс представления не обрабатывает данную команду, он передает ее связанному с ним классу документа. Для сопоставления идентификатору сообщения функции его обработки класс представления использует карту сообщений. Класс представления осуществляет только отображение и изменение данных в документе, но не хранит эти изменения. Вся отображаемая на экране информация содержится в классе документа. Класс представления может непосредственно обращаться к данным, хранящимся в документе, если в последнем предусмотрены методы для доступа к этим данным. После внесения изменений в документ класс представления, производящий данную операцию, обычно вызывает функцию CDocument::UpdateAllViews, посылающую другим классам просмотра, связанным с данным документом, сообщение о том, что в документ внесены изменения и классам просмотра необходимо обновить выводимую ими информацию. Эти сообщения обрабатываются функцией OnUpdate соответствующего класса просмотра. Обычно, для вывода информации на экран используется функция CView::OnDraw. Эту функцию можно использовать, также, для осуществления предварительного просмотра печати и самой печати. Реализация цикла печати и предварительного просмотра документа возложена на приложение. Описание данного класса содержится в файле заголовка afxwin.h. Данный класс используется во многих демонстрационных приложениях, описанных в данной книге. Наиболее полное его описание приведено в главах 2 и 10.