J'essaie de faire une double tampon dans une application MFC et d'essayer de dessiner sur la mémoire DC avec GDI +. Cependant, bien que j'ai appelé CreateCompatibedc (), je ne reçois qu'une image monochrome. Voici le code:
CDC bufferDC; CBitmap bufferBitmap; bufferDC.CreateCompatibleDC(&dc); bufferBitmap.CreateCompatibleBitmap(&bufferDC, 300, 300); bufferDC.SelectObject(bufferBitmap); Graphics g(bufferDC); g.Clear(Color::Green); dc.BitBlt(0, 0, 300, 300, &bufferDC, 0, 0, SRCCOPY);
3 Réponses :
Le bitnmap et le bufferdc doivent être compatibles avec Essayez de donner dc code> (quel que soit le périphérique qu'il fait référence), pas le bitmap compatible ... avec son propre dc. P>
& dc code> à
CreateCopMpatisibleBitmap code>. p>
Votre code de code ne montre pas où la variable dc code> provient de. Ce gars contient probablement un bitmap monochrome, la valeur par défaut. Vous n'en avez pas besoin de toute façon. Au lieu de cela, passez null à
CreateCompatibedc code> et ce sera le même format que votre affichage, qui est probablement couleur. P>
une erreur commune. Une mémoire DC prend les propriétés du bitmap sélectionnées, peu importe la compatibilité avec laquelle il a été créé. Le bitmap par défaut sélectionné dans un CC est monochrome. Si vous créez un bitmap compatible avec ce DC, ce sera également monochrome. P>
Créer le bitmap pour être compatible avec l'original DC, pas la mémoire DC. P>