Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
38
Добавлен:
16.02.2016
Размер:
1.98 Mб
Скачать

Класс Cview

Класс CView реализует основные возможности для работы с отображе­ниями. Отображения пристыковываются к документу и реализуют интер­фейс между документом и пользователем: объект отображение выводит до­кумент на экран или на принтер и интерпретирует действия пользователя как операции над документом.

Отношения между классом отображения, классом окна-рамки и классом Документа устанавливаются объектом CDocTemplate. Вызов конструктора нового отображения и сопоставление его документу выполняются при от­крытии пользователем нового окна и разделении существующего окна.

Один объект отображение может быть сопоставлен только одному доку­менту, однако один документ может иметь несколько сопоставленных ему отображений.

Отображения обрабатывают сообщения, используя таблицу сообщений. J Отображения выполняют показ данных документа, но не отвечают за их

сохранение. Документ предоставляет отображению необходимую информаЗ

цию о данных посредством вызова объектом отображение методов доку|

мента.

Для внесения изменений в данные отображение, как правило, вызывает

метод CDocument::UpdateAHViews, который инициирует вызов методо!

OnUpdate для всех других отображений. По умолчанию реализация метод!

OnUpdate определяет всю клиентскую область как недостоверную. Этот ме|

тод может быть переопределен.

Для того чтобы использовать класс отображений Cview, следует:

1. Объявить производный класс от Cview;

2. Реализовать метод OnDraw, выполняющий отображение экрана или вы| вод на печать.

Для обработки сообщений от линейки прокрутки можно использовать: I

• методы CWnd::OnHScroll и CWnd::OnVScroll;

• класс CScrollView.

Члены класса С View

CView( );

Конструктор объекта CView. Конструктор вызывается при создании но­вого окна-рамки или разделении существующего окна. Для инициализаций отображения сопоставленного документу следует вызвать метод OnlnitialUpdate.

BOOL DoPreparePrinting( CPrintlnfo* plnfo );

Этот метод вызывается из переопределяемого метода OnPreparePrinting для отображения диалогового окна Print и создания контекста устройства! принтера.

CDocument* GetDocument() const;

Метод возвращает указатель на объект документ сопоставленный дан­ному отображению, или NULL, если отображение не пристыковано ни к какому документу.

Этот указатель можно использовать для вызова методов класса документа. virtual void OnInitiaIUpdate();

Метод вызывается сразу после сопоставления отображения документу, но до первого вывода отображения. По умолчанию реализация этого метода] вызывает метод OnUpdate с нулевыми значениями параметров (lHint=0,\ рНШ= NULL). Для выполнения собственных действий при инициализаций! документа следует переопределить этот метод.

virtual BOOL CView::OnScroll( UINT nScrollCode, UINT nPos, BOOL bDoScroll = TRUE );

Метод вызывается с параметром bDoScroll= TRUE в том случае, если отображение получает сообщение от линейки прокрутки. Программист должен переопределить этот метод, описав необходимые действия.

Параметры:

nScrollCode - код линейки прокрутки, состоящий их двух частей: в младшем байте указывается, как выполнять прокрутку по горизонтали, в старшем байте - по вертикали. Код линейки прокрутки как по горизонтали, так и по вертикали может указываться следующими значениями: SB_BOTTOM, SB_LINEDOWN, SBJLINEUP, SB_PAGEDOWN, SB_PAGEUP, SBJTHUMBTRACK, SB_TOP.

nPos - указывает значение текущей позиции для прокрутки, определяемой значением SBJTHUMBTRACK.

bDoScroll - при значении TRUE прокрутку отображения следует выполнить, при значении FALSE - прокрутка не выполняется. virtual void OnActivateView( BOOL bActivate, CView* pActivateView, CView* pDeactiveView );

Метод вызывается при активизации или деактивизации отображения. По умолчанию реализация этой функции состоит в установке фокуса на активизируемое отображение.

Параметры:

bActivate - указывает, активизируется или деактивизируется отображение. pActivateView - активизируемый объект отображение. pDeactiveView - деактивизируемый объект отображение. virtual void OnActivateFrame( UINT nState, CFrameWnd* pFrameWnd);

Метод вызывается при активизации или деактивизации окна-рамки, со­держащего отображение.

Этот метод можно переопределить, например в классе CFormView пере­определенный метод при активизации или деактивизации окна-рамки вы­полняет сохранение и восстановление информации об элементе управле­ния, имеющем фокус.

Параметры:

nState - указывает на активизацию или деактивизацию окна-рамки и опре­деляется одним из следующих значений: WA_INACTIVE - окно деактивизируется;

WA_ACTIVE - окно активизируется любым способом, кроме щелчка мыши; WA_CLICKACTTVE - окно активизируется по щелчку мыши. PFrameWnd - указатель на активизируемое окно.

virtual void OnDraw( CDC* pDC ) = 0;

Метод вызывается для выполнения таких действий, как воспроизведе­ние изображения документа на экране, печать документа или предвари­тельный просмотр. По умолчанию метод не предусматривает никакой реа­лизации и должен быть переопределен.

Параметры:

pDC - указатель на контекст устройства, используемый для перерисонки изображения.

Для того чтобы определить перерисовываемую область, можно вызвать метод RectVisible контекста устройства. Метод IsPrinting контекста устрой­ства определяет направление вывода: на экран или на принтер. virtual void OnUpdate( CView* pSender, LPARAM IHint, CObject* pHint);

Вызов этого метода инициируется при изменении отображения доку­мента. Этот метод вызывается методом CDocuraent::UpdateAllViews и мето­дом OnlnitialUpdate. По умолчанию реализация этого метода отмечает всю клиентскую область как недостоверную и инициирует сообщение WM_PAINT.

Параметры:

pSender - указатель на отображение.

Соседние файлы в папке VC++Баженова