solon wrote: //updated code HDC hMemDC = ::CreateCompatibleDC( hDC); After you create the MemDC, you will have a monchromatic bitmap with 1 pixel selected into that memdc. What you need to do now is to create a bitmap that has the proper height, width and color depth to match the Window DC that you want to paint to. In order to do this you should use some code similar to this: // Get the dimensions of the client window. RECT rClient; ::GetClientRect(hWnd, &rClient); // Create the compatible bitmap to the window DC with the proper dimensions. HBITMAP hBmp = ::CreateCompatibleBitmap(hDC, rClient.right, rClient.bottom); // Select this new bitmap into the MemDC. (HBITMAP)::SelectObject(hMemDC, hBmp); Now you can continue with the code that you have previously written. solon wrote: ::StretchDBIits( hMemDc, /* ... */); ::BitBlt( hDC, /* ... */, hMemDC, /* ... /-*/); //!? Finally in order to cleanup, you must do things in this order. ::DeleteDC(hMemDC); ::DeleteObject(hBmp);