J'ai récemment tenté le double buffer sous window avec GDI... Mais je ne comprend pas trop mon erreur. Quand je dessine directement sur mon DC, ça marche. Quand je crée un compatible DC, que je dessine tout dessus et que je plaque mon compatible DC sur mon DC... bah ça marche plus ^_^
Mon code ressemble à peu près à ça :
// Je dessine tout dans mon compDC, genre un rectangle ou une image
// Ensuite je place mon compDC dans mon DC
BitBlt(hdc, 0, 0, width, height, compDC, 0, 0, SRCCOPY);
Mais je comprend pas où est mon erreur... Est-ce que ça serait sur ma manière de dessiner ? Si c'est le cas alors pourquoi ça marche quand j'essaye directement sur mon hdc ?
Si quelqu'un pouvait me renseigner sur le problème ça serait sympa :)
Non non tu as juste à selectionner la bitmap dedans. Après tu dessines dans compDC comme si c'était un DC normal. En fait tu ajoutes juste ces deux lignes et ca devrait marcher
HBITMAP hbmp = CreateCompatibleBitmap(hdc, width, height);
SelectObject(compDC, hbmp);
// Je dessine tout dans mon compDC, genre un rectangle ou une image
// Ensuite je place mon compDC dans mon DC
BitBlt(hdc, 0, 0, width, height, compDC, 0, 0, SRCCOPY);
Oki donc si je veux dessiner un rectangle avec la fonction rectangle, il faut que je me débrouille pour en faire un bitmap puis que je le place dans mon DC mémoire. Merci j'vais essayer ^_^