Fuite dans code (ci-joint)

cs_Manson Messages postés 137 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 30 septembre 2004 - 22 mars 2004 à 09:03
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 - 24 mars 2004 à 00:33
Salut a tous,

voila j'ai fait ce bout de code pour redimensionner une bitmap
au moment du WM_PAINT, ca marche bien, mais j'ai l'impression
que j'ai une fuite quand meme, aurais-je oublie quelque chose ??

HBITMAP		img_src;

LRESULT CALLBACK	test(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT	ps;
HDC			hdc;
BITMAP		bm;
HDC			hMemdc;
HBITMAP		hOldBmp;
[...]
case WM_PAINT:
hdc = BeginPaint(GetDlgItem(hDlg, IMG), &ps);
GetObject(img_src, sizeof(bm), &bm); 
hMemdc = CreateCompatibleDC(hdc); 
if(hMemdc) 
{ 
hOldBmp = (HBITMAP)SelectObject(hMemdc, img_src); 
if(hOldBmp) 
{ 
SetStretchBltMode(hdc, COLORONCOLOR);
StretchBlt(hdc, 0, 0, 60, 72, hMemdc, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);
SelectObject(hMemdc, hOldBmp); 
DeleteDC(hMemdc); 
DeleteObject(hOldBmp); 
} 
else 
DeleteDC(hMemdc); 
}
EndPaint(GetDlgItem(hDlg, IMG), &ps);
break ;
[...]


D'avance merci.

2 réponses

lpikachu58 Messages postés 351 Date d'inscription samedi 2 février 2002 Statut Membre Dernière intervention 6 mai 2004 2
23 mars 2004 à 14:06
Ca a l'air d'etre ça pourtant

be linux
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
24 mars 2004 à 00:33
il ne faut pas détruire l'objet qui était dans le DC au départ :
DeleteObject(hOldBmp);
(il faut simplement le remettre dedans)
0
Rejoignez-nous