Здравствуйте PSP, Вы писали:
PSP>Здравствуйте maslukov, Вы писали:
M>>Здрасьте!
M>>Хочу чтобы TextOut и пр. выводилиси не в экранный DC а в память.
M>>Для этого я создаю compDC=CreateCompatibleDC
M>>Далее для TextOut-а использую compDC.
M>>( Причем без всяких BeginPaint и EndPaint)...
M>>Длаьше просто нужно сделать BitBlt? и вызвать InvalidateRect?
PSP>memDC.CreateCompatibleDC(&dc);
PSP>bmpDC.CreateCompatibleBitmap(&dc,rect.Width(), rect.Height());
PSP>CBitmap * pOldBitmap=memDC.SelectObject(&bmpDC);
PSP>pDC=&memDC;
PSP>Рисуешь.
PSP>dc.BitBlt(0,0,rect.Width(), rect.Height(),pDC,0,0,SRCCOPY);
PSP>memDC.SelectObject(pOldBitmap);
Либо без mfc:
HDC hMemDC = CreateCompatibleDC(hDC);
if(hMemDC == 0) return;
HBITMAP hBmp = CreateCompatibleBitmap(hDC, wid, hei); wid/hei -> размеры
HBITMAP hOb = HBITMAP(SelectObject(hMemDC, hBmp));
// тут делаешь что вздумается...
BitBlt(hDC, rc.left, rc.top, wid, hei, hMemDC, rc.left, rc.top, SRCCOPY);
// rc -> RECT настоящего DC
SelectObject(hMemDC, hOb);
DeleteObject(hBmp);
DeleteDC(hMemDC);