_Point01d); CIientDC.SetR0P2 (
Автор admin Вторник, 14 апреля 2009 11:32
_Point01d); CIientDC.SetR0P2 (R2_C0PYPEN); CIi entDC.MoveTo (m_Poi ntOri gin); CIientDC.LineTo (point); CMiniPaintDoc* PDoc = GetDocument 0; PDoc->AddLine (m_PointOrigin.x, m_PointOrigin.y. point.x.point.y); PDoc->UpdateAllViews (this); } CScroilView::OnLButtonUp(nFlags, point); } Напомним, что функция CDocument:: UpdateAll Views О вызывает функцию CMiniPaintView: :0nDraw() для всех связанных с документом представлений, кроме указанного в первом ее параметре. В программе MiniPaint передача указателя this в функцию CDocument: .-UpdateAll Views О приводит к вызову функции CMiniPaintView: :0nDraw() для всех окон представлений за исключением текущего. Текущее окно представления в перерисовке не нуждается, поскольку новая линия в нем уже отображается. Таким образом, мы добились того, что линия, нарисованная в одной панели, появится и в другой. Однако данная версия программы MiniPaint при необходимости перерисовывает панели полностью, включая неотображаемые на экране области, то есть перерисовка выполняется нерационально. Модифицируем код программы таким образом, чтобы перерисовке подлежали только измененные
Комментарии закрыты.
Последние комментарии