...
case WM_PAINT:
hdc = BeginPaint(hWnd,&ps);
EndPaint(hWnd,&ps);
break;
...
void Paint(HWND hWnd, HWND hPaint, HWND hOctant)
{
hdc = GetDC(hWnd);
hCompatibleDC = CreateCompatibleDC(hdc);
GetClientRect(hWnd,&CompatibleRect);
hCompatibleBitmap = CreateCompatibleBitmap(hdc,CompatibleRect.right,
CompatibleRect.bottom-106);
SelectObject(hCompatibleDC,hCompatibleBitmap);
PatBlt(hCompatibleDC,0,0,CompatibleRect.right,
CompatibleRect.bottom-106,PATCOPY);
SelectObject(hCompatibleDC,hMyPen);
SelectObject(hCompatibleDC,hMyBrush);
//тут идёт код рисующий нечто на hCompatible...
BitBlt(hdc,ps.rcPaint.left,ps.rcPaint.top,
ps.rcPaint.right,ps.rcPaint.bottom-106,
hCompatibleDC,ps.rcPaint.left,ps.rcPaint.top,SRCCOPY);
DeleteObject(hMyPen);
DeleteObject(hMyBrush);
DeleteObject(hCompatibleBitmap);
DeleteDC(hCompatibleDC);
ReleaseDC(hWnd,hdc);
InvalidateRect(hWnd,NULL,FALSE); //нужна, хрен знает для чего,.. наверное осталась, когда я ещё пользовался перекидыванием из буфера на всю форму... её можно не учитывать.
}
оптимизация контекста
Очень нужно оптимизировать код так, чтобы выносить рисование на форме в отдельную функцию (относительно WM_PAINT ) далее мой код. Но всё очень сильно тормозит... не подскажите что здесь лишнее, а чего может не хватает... вобщем, вот такие пироги:
Код:
Вот.