CDC::CreateCompatibleDC
Crée un contexte de périphérique qui est compatible avec l'appareil spécifié par pDC.
BOOL CreateCompatibleDC(
CDC* pDC
);
Paramètres
- pDC
Un pointeur vers un contexte de périphérique. Si pDC est NULL, la fonction crée un contexte de périphérique qui est compatible avec l'affichage du système.
Valeur de retour
Une valeur différente de zéro si la fonction est réussie ; sinon 0.
Notes
Un contexte de périphérique est un bloc de mémoire qui représente une surface d'affichage. Il peut être utilisé pour préparations image dans la mémoire avant de les copier à la surface du périphérique réel du périphérique compatible.
Lorsqu'un contexte de périphérique est créé, GDI sélectionne automatiquement une bitmap 1 d'actions du noir et blanc by-1 pour celui-ci. Les fonctions de sortie à GDI peuvent être utilisées avec un contexte de périphérique uniquement si une bitmap créée et sélectionnée dans ce contexte.
Cette fonction peut être utilisée pour créer des contextes compatibles de l'appareil pour les appareils qui ne prennent pas en charge les opérations rasters. Consultez la fonction membre de CDC::BitBlt pour plus d'informations concernant les assignations par bloc de bits entre les contextes de périphérique. Pour déterminer si un contexte de périphérique prend en charge les opérations rasters, consultez la capacité de fr. de RC_BITBLT dans la fonction membre CDC::GetDeviceCaps.
Exemple
// 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");
}
}
Configuration requise
Header: afxwin.h