Double Buffering

garslouche Messages postés 583 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 29 mai 2015 - 21 nov. 2003 à 15:53
garslouche Messages postés 583 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 29 mai 2015 - 22 nov. 2003 à 01:41
Salut !

Je voudraid faire du double buffering mais même un truc simple ne fonctinne pas :

HDC hDC = CreateCompatibleDC(hDestDC);
MoveToEx(hDC,0,0,NULL);
LineTo(hDC, 100, 100);
BitBlt(hDestDC, 0, 0, 100, 100, hDC, 0, 0, SRCCOPY);

Donc en gros ça trace une ligne en diagonal.
Si je fais le LineTo avec hDestDC ça marche mais avec le double buffering ça ne marche plus.

Quelqu'un pourrait m'aider, please ?

On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac

2 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
21 nov. 2003 à 23:38
hdc : contexte de la fenête cible.
cx, cy : taille de la zone cliente.

// création d'un contexte d'affichage en mémoire et d'un bitmap associé
HDC hMemDC= CreateCompatibleDC(hdc);
HBITMAP hMemBmp= CreateCompatibleBitmap(hdc, cx,cy);
HBITMAP hOldBmp= SelectBitmap(hMemDC, hMemBmp);

// utilisation de hMemDC pour les dessins

// recopie du contexte en mémoire à l'écran
BitBlt(hdc, 0, 0, cxClient, cyClient, hMemDC, 0, 0, SRCCOPY);

// sélection anciens objets, destruction de ceus créés
SelectBitmap(hMemDC, hOldBmp);
DeleteBitmap(hMemBmp);
DeleteDC(hMemDC);
0
garslouche Messages postés 583 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 29 mai 2015 1
22 nov. 2003 à 01:41
Merci mais finalement j'ai trouvé...ça se trouve dans ma dernière source (calendrier sur le bureau) !

On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac
0
Rejoignez-nous