julien_boss
Messages postés165Date d'inscriptionsamedi 4 juin 2005StatutMembreDernière intervention24 octobre 2007
-
4 juin 2007 à 19:16
julien_boss
Messages postés165Date d'inscriptionsamedi 4 juin 2005StatutMembreDernière intervention24 octobre 2007
-
5 juin 2007 à 16:18
Bonjour,
j'ai un DC, contenant un dessin..., je souhaite pouvoir transférer son contenu dans un bitmap de type HBITMAP, afin ensuite de la mettre dans le clipboard.
Je sais mettre une image de type HBITMAP dans le clipboard mais pas comment transférer le contenu d'un DC vers un HBITMAP.
Si vous pouviez m'aider sur ce coup ;)
Merci
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 5 juin 2007 à 01:23
Salut,
Voici un petit code que je viens d'écrire. Il est mis dans le traitement de WM_PAINT. Il dessine un rectangle blanc sur la fenêtre puis écrit un petit texte en rouge. Il crée un HDC en mémoire compatible avec l'affichage écran. Ensuite, il crée un bitmap compatible. Ce dernier est sélectionné dans notre HDC compatible. On copie dans ce dernier une portion du contenu de la fenêtre grâce à BitBlt(). Enfin, on met le HBITMAP dans le clipboard. Pour tester, je le colle dans un nouveau document Word. Ca marche parfaitement.
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc=BeginPaint(hwnd,&ps);
Rectangle(hdc,10,10,60,60);
SetTextColor(hdc,RGB(255,0,0));
TextOut(hdc,10,10,TEXT("123456"),6);
HDC cDC=CreateCompatibleDC(0);
HBITMAP hbmp=CreateCompatibleBitmap(hdc,100,100);
SelectObject(cDC,hbmp);
BitBlt(cDC,0,0,100,100,hdc,0,0,SRCCOPY);
OpenClipboard(hwnd);
EmptyClipboard();
SetClipboardData(CF_BITMAP,hbmp);
CloseClipboard();
DeleteObject(hbmp);
DeleteDC(cDC);
EndPaint(hwnd,&ps);
return 0;
}