Condividi tramite


CDC::CreateCompatibleDC

Crea un contesto di dispositivo di memoria è compatibile con il dispositivo specificato da pDC.

BOOL CreateCompatibleDC( 
   CDC* pDC  
);

Parametri

  • pDC
    Un puntatore a un contesto di dispositivo. Se pDC è NULL, la funzione crea un contesto di dispositivo di memoria è compatibile con la visualizzazione del sistema.

Valore restituito

Diverso da zero se la funzione ha esito positivo; in caso contrario 0.

Note

Un contesto di dispositivo di memoria è un blocco di memoria che rappresenta un'area di visualizzazione. Può essere utilizzato per preparare le immagini in memoria prima copiarle la superficie del dispositivo effettivo del dispositivo compatibile.

Quando un contesto di dispositivo di memoria viene creato, GDI automaticamente seleziona una bitmap 1 di azione di monocromio by-1 per. Le funzioni di output GDI possono essere utilizzate con un contesto di dispositivo di memoria solo se una bitmap creata e stata selezionata in tale contesto.

Questa funzione può essere utilizzata solo per creare i contesti di periferica compatibili per i dispositivi che supportano le operazioni raster. Vedere la funzione membro CDC::BitBlt per informazioni relative ai trasferimenti di blocchi di bit tra contesti di periferica. Per determinare se un contesto di dispositivo supporta le operazioni raster, vedere RC_BITBLT alla funzionalità raster nella funzione membro CDC::GetDeviceCaps.

Esempio

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

Requisiti

Header: afxwin.h

Vedere anche

Riferimenti

Classe CDC

Grafico delle gerarchie

CDC::CDC

CDC::GetDeviceCaps

CreateCompatibleDC

CDC::BitBlt

CDC::CreateDC

CDC::CreateIC

CDC::DeleteDC