Aracılığıyla paylaş


CDC::CreateCompatibleDC

Belirtilen aygıtla uyumlu olan bellek aygıt içeriğini oluşturur pDC.

BOOL CreateCompatibleDC(
   CDC* pDC 
);

Parametreler

  • pDC
    Bir aygıt içerik için bir işaretçi.pDC Olan null, sistem görüntüsü ile uyumlu olan bellek aygıt içeriğini işlev oluşturur.

Dönüş Değeri

Sıfır olmayan bir değer işlevi başarılı olursa; Aksi halde 0.

Notlar

Bellek aygıt içeriğini temsil eden bir görüntü yüzeyi bellek bloğudur.Uyumlu bir aygıtı gerçek aygıt yüzeyine kopyalamadan önce görüntüleri bellekte hazırlamak için kullanılabilir.

Bellek aygıtı bağlamı oluşturulduğunda, GDI 1 1 tek renkli hisse senedi bitmap onu otomatik olarak seçer.Yalnızca bit eşlem oluşturuldu ve bu bağlam seçili GDI çıktı işlevleri bellek aygıt içeriği ile kullanılabilir.

Bu işlev yalnızca raster işlemleri destekleyen aygıtlar için uyumlu bir aygıt içerik oluşturmak için kullanılabilir.Bkz: CDC::BitBlt aygıt işlemleri arasında bit blok aktarımları ile ilgili bilgi için üye işlevi.Bir aygıt içeriğini raster işlemleri destekleyip desteklemediğini belirlemek için bkz: RC_BITBLT raster yeteneği üye işlevi, CDC::GetDeviceCaps.

Örnek

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

Gereksinimler

Başlık: afxwin.h

Ayrıca bkz.

Başvuru

CDC Sınıfı

Hiyerarşi grafik

CDC::CDC

CDC::GetDeviceCaps

CreateCompatibleDC

CDC::BitBlt

CDC::CreateDC

CDC::CreateIC

CDC::DeleteDC