bonjour à tous,

voila je voudrais créer une barre de progression moi même et pour l'affichage j'ai besoin d'une zone de dessin temporaire dans laquelle je pourrais faire quelques opérations (il faudrait que je dessine dedans un rectangle arrondi avec RoundRect et que j'inverse tous les pixels)
Pour cela j'ai essayer de créer un DC dans lequel je selectionne un bitmap mais sa ne marche pas ... je comprend pas là ....
Pour le bitmap j'ai essayer 2 méthodes, CreateCompatibleBitmap et CreateDIBSection, mais rien à faire ...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
HDC memDC = CreateCompatibleDC(hDC);
if (memDC!=NULL)
{
//	HBITMAP hbmp = CreateCompatibleBitmap(hDC,GetDeviceCaps(hDC,HORZRES),GetDeviceCaps(hDC,VERTRES));
    BITMAPINFO bi = { 
        { sizeof(bi.bmiHeader),largeur,hauteur,1,32,BI_RGB,0,0,0,0,0 },
        {{0,0,0,0}}
    };
    LPVOID pt_bits = NULL;
    HBITMAP hbmp = CreateDIBSection(NULL,&bi,DIB_RGB_COLORS,&pt_bits,NULL,0);
    
    if (hbmp!=NULL)
    {
        if (SelectObject (memDC,hbmp)!=NULL)
        {
            DessinerRectangleArrondi ((HDC)hbmp,
                                      0,0, largeur,hauteur,
                                      CreatePen(PS_SOLID,0,RGB(0,0,0)),CreateSolidBrush(RGB(0,0,0)),
                                      20,20);

            BitBlt (hDC,position.x,position.y,largeur,hauteur, (HDC)hbmp,0,0, SRCPAINT);

            DeleteObject (hbmp);
            DeleteDC (memDC);
        }
        else
            MessageBox(NULL,TEXT("impossible de selectionner le bitmap"),TEXT("erreur"),MB_OK);
    }
    else
        MessageBox(NULL,TEXT("impossible de créer le bitmap"),TEXT("erreur"),MB_OK);		}
else
    MessageBox(NULL,TEXT("impossible de créer le memDC"),TEXT("erreur"),MB_OK);
voila si qq1 sait comment faire ...

merci d'avance
@+