Share via


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

Vea también

Referencia

Clase de la CDC

Gráfico de jerarquía

CDC::CDC

CDC::GetDeviceCaps

CreateCompatibleDC

CDC::BitBlt

CDC::CreateDC

CDC::CreateIC

CDC::DeleteDC