CDC::CreateCompatibleDC
Erstellt einen Speichergerätekontext, der mit dem Gerät kompatibel ist, das durch pDC angegeben wird.
BOOL CreateCompatibleDC(
CDC* pDC
);
Parameter
- pDC
Ein Zeiger auf einem Gerätekontext.Wenn pDCNULL ist, erstellt die Funktion einen Speichergerätekontext, der mit der Systemanzeige kompatibel ist.
Rückgabewert
Ungleich 0 (null), wenn die Funktion erfolgreich; 0 andernfalls.
Hinweise
Ein Speichergerätekontext ist ein Speicherblock, der eine Anzeigeoberfläche darstellt.Er kann verwendet werden, um Bilder in den Arbeitsspeicher vorzubereiten, bevor sie auf die Oberfläche des aktuellen Gerätes des Geräts kompatiblen kopiert.
Wenn ein Speichergerätekontext erstellt wird, wählt GDI automatisch eine 1 Vorratbitmap des Monochroms by-1 für es aus.GDI-Ausgabefunktionen können mit einem Speichergerätekontext nur verwendet werden, wenn eine Bitmap in diesen Kontext erstellt und ausgewählt wurde.
Diese Funktion kann nur verwendet werden, um kompatible Gerätekontexte für Geräte zu erstellen, die Rastervorgänge unterstützen.Siehe die CDC::BitBlt-Memberfunktion zu Informationen über Bitblocktransfers zwischen Gerätekontexten.Um nach gewünschtem ein Gerätekontext Rastervorgänge unterstützt, finden Sie die RC_BITBLT Rasterfunktion in der Memberfunktion CDC::GetDeviceCaps.
Beispiel
// 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");
}
}
Anforderungen
Header: afxwin.h