CDC::CreateCompatibleDC
Crea un contexto de dispositivo de memoria compatible con el dispositivo especificado por pDC.
BOOL CreateCompatibleDC(
CDC* pDC
);
Parámetros
- pDC
Un puntero a un contexto de dispositivo.Si pDC es NULL, la función crea un contexto de dispositivo de memoria que es compatible con la presentación del sistema.
Valor devuelto
Distinto de cero si la función es correcta; si no 0.
Comentarios
Un contexto de dispositivo de memoria es un bloque de memoria que representa una superficie de presentación.Se puede utilizar para preparar las imágenes en memoria antes de copiarlas a la superficie del dispositivo real de dispositivo compatible.
Cuando se crea un contexto de dispositivo de memoria, GDI seleccionará automáticamente un 1 mapa de bits de la acción de monocromático by-1 para él.Las funciones de resultados de GDI se pueden utilizar con un contexto de dispositivo de memoria sólo si un mapa de bits se ha creado y se ha seleccionado en ese contexto.
Esta función solo se puede utilizar para crear los contextos compatibles de dispositivos para dispositivos que admiten las operaciones con la trama.Vea el miembro de CDC::BitBlt funcionar para la información relacionada con transferencias de bloque de bits entre los contextos de dispositivo.Para determinar si un contexto de dispositivo admite operaciones de la trama, vea la capacidad de la trama de RC_BITBLT en la función CDC::GetDeviceCapsmiembro.
Ejemplo
// 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");
}
}
Requisitos
encabezado: afxwin.h