CDC::CreateCompatibleDC
Vytváří kontext zařízení paměti, který je kompatibilní se zařízením určeným pDC .
BOOL CreateCompatibleDC(
CDC* pDC
);
Parametry
- pDC
Ukazatel na kontext zařízení.Pokud pDC je NULL, funkce vytváří kontext zařízení paměti, který je kompatibilní se zobrazením systému.
Vrácená hodnota
Nenulová hodnota, pokud je tato funkce úspěšná. jinak 0.
Poznámky
Kontext zařízení paměti je blok paměti, která představuje zobrazovací povrch.Lze připravit obrazy v paměti před zkopírováním na povrch skutečné zařízení kompatibilní zařízení.
Je vytvořen kontext zařízení paměti, GDI automaticky vybere rastr monochromatické akcií 1-1 pro něj.Funkce rozhraní GDI výstup lze s kontextem paměti zařízení pouze tehdy, pokud byl vytvořen a vybrán do této souvislosti bitmapy.
Tuto funkci lze použít pouze vytvořit kontexty kompatibilní zařízení pro zařízení, která podporují rastrové operace.Najdete CDC::BitBlt informace o bloku bit převody mezi kontexty zařízení členské funkce.Chcete-li zjistit, zda kontext zařízení podporuje rastrové operace, RC_BITBLT možností rastrových členské funkce CDC::GetDeviceCaps .
Příklad
// This handler loads a bitmap from system resources,
// centers it in the view, and uses BitBlt() to paint the bitmap
// bits.
void CDCView::DrawBitmap(CDC* pDC)
{
// load IDB_BITMAP1 from our resources
CBitmap bmp;
if (bmp.LoadBitmap(IDB_BITMAP1))
{
// Get the size of the bitmap
BITMAP bmpInfo;
bmp.GetBitmap(&bmpInfo);
// Create an in-memory DC compatible with the
// display DC we're using to paint
CDC dcMemory;
dcMemory.CreateCompatibleDC(pDC);
// Select the bitmap into the in-memory DC
CBitmap* pOldBitmap = dcMemory.SelectObject(&bmp);
// Find a centerpoint 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 DC into the on-
// screen DC to actually do the painting. Use the centerpoint
// we computed for the target offset.
pDC->BitBlt(nX, nY, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory,
0, 0, SRCCOPY);
dcMemory.SelectObject(pOldBitmap);
}
else
{
TRACE0("ERROR: Where's IDB_BITMAP1?\n");
}
}
Požadavky
Záhlaví: afxwin.h