您的位置:首页 > 其它

CDC::CreateCompatibleDC

2008-04-28 09:23 357 查看

// 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? ");


}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: