Ðèñîâàíèå òîëüêî òåõ ôèãóð, êîòîðûå
* Ñòèðàíèå memBitmap
*/
BitBlt(hMemDC, 0, 0,
theRect.right-theRect.left
theRect.bottom-theRect.top,
hdc, 0, 0, SCRCOPY);
/*
* Ðèñîâàíèå òîëüêî òåõ ôèãóð, êîòîðûå íàõîäÿòñÿ
* âíóòðè îáíîâëÿåìîãî ïðÿìîóãîëüíèêà.
*/
for (i = 0; i <= CurrentPoint; ++i)
{
IntersectRect(&destRect, &thisShape[i].Points,
&theRect);
if (!IsRectEmpty(&destRect))
DrawShape(hMemDC,
thisShape[i].Points.left-theRect.left,
thisShape[i].Points.top-theRect.top,
thisShape[i].Points.right-theRect.left,
thisShape[i].Points.bottom-theRect.top,
thisShape[i].theShape,thisShape[i].PenWidth,
thisShape[i].PenColor,thisShape[i].slope);
/*
* Îòìåòèì, ÷òî ïðè ðèñîâàíèè ôèãóðû ïðîãðàììà ïåðåìåñòèëà
* åå òî÷êó íà÷àëà êîîðäèíàò ò.î., ÷òî îíà îêàçàëàñü â
* âåðõíåì ëåâîì óãëó îáíîâëÿåìîãî ïðÿìîóãîëüíèêà.
* Ýòî òî÷êà (0,0) îáëàñòè, â êîòîðóþ áóäåò âûïîëíåíî
* îòîáðàæåíèå (theRect.left,theRect.right).
*/
}
/*
* È íàêîíåö, êîïèðîâàíèå îáëàñòè â îáëàñòü îáíîâëÿåìîãî
* ïðÿìîóãîëüíèêà.
*/
BitBlt(hdc, theRect.left, theRect.top,
theRect.right-theRect.left,
theRect.bottom-theRect.top,
hMemDC, 0, 0, SRCCOPY);
DeleteDC(hMemDC);
TDeb 3.0 #3-3 = 54 =
DeleteObject(theBitmap);
EndPaint(hWnd,&ps);