HDC vers HBITMAP

Résolu
julien_boss Messages postés 165 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 24 octobre 2007 - 4 juin 2007 à 19:16
julien_boss Messages postés 165 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 24 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

2 réponses

racpp Messages postés 1910 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 15
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;
        }
3
julien_boss Messages postés 165 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 24 octobre 2007
5 juin 2007 à 16:18
Ok merci j'ai compris le principe.
A bientot
0