// This OnDraw() handler loads a bitmap from system resources, centers // it in the view, and uses BitBlt to paint the bitmap bits. void CBlat2View::OnDraw(CDC* pDC) ...{ CBlat2Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // Load IDB_BITMAP1 from the resources. CBitmap bmp; if (bmp.LoadBitmap(IDB_BITMAP1)) ...{ // Get the size of the bitmap. BITMAP bmpInfo; bmp.GetBitmap(&bmpInfo); // Create an in-memory device context compatible with the // display device context that is used to paint. CDC dcMemory; dcMemory.CreateCompatibleDC(pDC); // Select the bitmap into the in-memory device context. CBitmap* pOldBitmap = dcMemory.SelectObject(&bmp); // Find a center point for the bitmap in the client area. CRect rect; GetClientRect(&rect); int nX = rect.left + (rect.Width() - bmpInfo.bmWidth) /2; int nY = rect.top + (rect.Height() - bmpInfo.bmHeight) /2; // Copy the bits from the in-memory device context to the on- // screen device context to do the painting. Use the computed center // point for the target offset. pDC->BitBlt(nX, nY, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory, 0, 0, SRCCOPY); dcMemory.SelectObject(pOldBitmap); } else TRACE0("ERROR: Where is IDB_BITMAP1? "); }