Re: Двойная буферизация
От: Аноним  
Дата: 08.11.04 20:59
Оценка:
Здравствуйте, Mailin, Вы писали:

M>Почему у меня фон дочернего окна становится черным после применения этого кода:

M>
M>RECT Rect;
M>GetClientRect(&Rect);
M>CDC MemDC;
M>MemDC.CreateCompatibleDC(pDC);
M>CBitmap MemBitmap;
M>MemBitmap.CreateCompatibleBitmap(pDC,Rect.right,Rect.bottom);
M>CBitmap *pOldBitmap=MemDC.SelectObject(&MemBitmap);
M>...............
M>//тут я рисую....
M>...............
pDC->>BitBlt(0,0,Rect.right,Rect.bottom,&MemDC,0,0,SRCCOPY);
M>MemDC.SelectObject(pOldBitmap);
M>MemBitmap.DeleteObject();
M>MemDC.DeleteDC();
M>

M>Может я чего не дописываю?Подскажите пожалуйста...

У Вас пустой (черный) MemDC после создания. Если Вы хотите сохранить предыдущее содержимое окна, скопируйте его из pDC.


CDC MemDC;
MemDC.CreateCompatibleDC(pDC);
CBitmap MemBitmap;
MemBitmap.CreateCompatibleBitmap(pDC,Rect.right,Rect.bottom);
CBitmap *pOldBitmap=MemDC.SelectObject(&MemBitmap);
MemDC.BitBlt(0,0,Rect.right,Rect.bottom,pDC,0,0,SRCCOPY);
...............
//тут я рисую....
...............
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.