Sinon un exemple de double buffer !! hdc etant le HDC actuel RECT ClientRect GetClientRect(hwnd ,&ClientRect); // création d'un contexte d'affichage en mémoire et d'un bitmap associé HDC hMemDC= CreateCompatibleDC(hdc); HBITMAP hMemBmp= CreateCompatibleBitmap(hdc, ClientRect.right-ClientRect.left,ClientRect.bottom-ClientRect.top); HBITMAP hOldBmp= (HBITMAP)SelectObject(hMemDC, hMemBmp); [....] ton code fait avec hMemDC [....] // recopie du contexte en mémoire à l'écran BitBlt(hdc, 0, 0, ClientRect.right-ClientRect.left,ClientRect.bottom-ClientRect.top, hMemDC, 0, 0, SRCCOPY); // sélection anciens objets, destruction de ceus créés SelectObject(hMemDC, hOldBmp); DeleteObject(hMemBmp); DeleteDC(hMemDC);
|