Шаг 1073 - CView::OnUpdate

virtual void OnUpdate( CView* pSender, LPARAM lHint, CObject* pHint );

Параметры
pSender
Указатель на просмотр, который изменил документ, или NULL, если все просмотры должны модифицироваться.
lHint
Содержит информацию относительно модификаций.
pHint
Указатель на объект, сохраняющий информацию относительно модификаций.

Замечания
Вызывается рамкой после того, как документ просмотра изменился, эта функция вызвана CDocument::UpdateAllViews и позволяет просмотру модифицировать дисплей, чтобы отразить те модификации. Это также вызвано заданной по умолчанию реализацией OnInitialUpdate. Заданная по умолчанию реализация объявляет неверным всю клиентскую область, отмечая это для закрашивания, когда следующее WM_PAINT сообщение получено. Перегрузите эту функцию, если Вы хотите модифицировать только те области, которые отображают к изменяемым частям документа. Чтобы делать это, Вы должны передать информацию относительно модификаций, использующих параметры подсказки.
Чтобы использовать lHint, определите специальные значения подсказки, обычно bitmask или перечислимый тип, и передайте документы одно из этих значений. Чтобы использовать pHint, получите класс подсказки из CObject, и передайте документу указатель на объект подсказки, при перегрузке OnUpdate, используйте CObject::IsKindOf функцию, чтобы определить тип во время выполнения объекта подсказки.
Обычно Вы не должны выполнить никакой рисунок непосредственно из OnUpdate. Вместо этого, определите описание прямоугольника, в координатах устройства, область, которая требует модифицирования, передайте этот прямоугольник к CWnd::InvalidateRect. Это заставляет закрашивание происходить, в следующий раз когда WM_PAINT сообщение получено.
Если lHint - 0, и pHint NULL, документ послал универсальное сообщение модификации. Если просмотр получает универсальное сообщение модификации, или если это не может декодировать подсказки, это должно объявить неверным всю клиентскую область.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 23.02.2002