Äëÿ ïîøàãîâîãî âûïîëíåíèÿ ïðîãðàììû íóæíî
break;
case WM_PAINT:
DoPaint(hWnd);
break;
default:
return DefWindowProc(hWnd,Message,wParam,lParam);
}
return 0;
}
Ïîøàãîâîå âûïîëíåíèå ïðîãðàììû
-----------------------------------------------------------------
Äëÿ ïîøàãîâîãî âûïîëíåíèÿ ïðîãðàììû íóæíî íàæèìàòü êëàâèøó
F7. Ìàðêåð òåêóùåé ñòðîêè äîéäåò äî îïåðàòîðà case WM_PAINT, è
íàêîíåö äî ïîäïðîãðàììû DoPaint.
Ïîäïðîãðàììà DoPaint:
void DoPaint(HWND hWnd)
{
int i,
saveROP;
HDC hdc,
hMemDC;
RECT theRect,
destRect;
HBITMAP the Bitmap;
PAINTSTRUCT ps;
if (CurrentPoint >= 0)
{
hdc = BeginPaint(hWnd,&ps);
/*
* Îïðåäåëèòü, êàêàÿ ïðÿìîóãîëüíàÿ îáëàñòü îòìå÷åíà
* êàê íåäîïóñòèìàÿ.
* Åñëè íè îäèí ïðÿìîóãîëüíèê íå ïîìå÷åí êàê
* íåäîïóñòèìûé, òî ýêðàí áóäåò ïîëíîñòüþ ïåðåðèñîâàí.
*/
GetUpdateRect(hWnd,&theRect,0);
if (IsRectEmpty(&theRect))
GetClientRect(hWnd,&theRect);
/*
* Ñîçäàíèå DC (êîíòåêñòà óñòðîéñòâà) è îáëàñòè
* òîãî æå ðàçìåðà, ÷òî è îáíîâëÿåìûé ïðÿìîóãîëüíèê.
*/
TDeb 3.0 #3-3 = 53 =
hMemDC = CreateCompatibleDC(hdc);
theBitmap = CreateCompatibleBitmap(hdc,
theRect.right-theRect.left
theRect.bottom-theRect.top);
SelectObject(hMemDC,theBitmap);
/*