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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| void CGen::createImage(CImageList * pList)
{
if(pList != NULL)
{
// parcours de toute l'imageList.
for(int i = 0 ; i < pList->GetImageCount() ; i++)
{
IMAGEINFO infos;
if( pList->GetImageInfo(i, &infos) == TRUE)
{
int iWidth = infos.rcImage.right - infos.rcImage.left;
int iHeight = infos.rcImage.bottom - infos.rcImage.top;
CImage image;
if( image.Create(iWidth, iHeight, 24) == TRUE )
{
image.Attach(infos.hbmImage);
if(image.MaskBlt( image.GetDC(),
CRect(0, 0, iWidth, iHeight),
CPoint(infos.rcImage.left, infos.rcImage.top),
infos.hbmMask,CPoint(0,0)) == TRUE)
{
CString strFileName;
strFileName.Format(_PATH_, i);
HRESULT hRes = image.Save(strFileName);
switch(hRes)
{
case E_OUTOFMEMORY:
case E_ABORT:
case E_FAIL:
case E_ACCESSDENIED:
break;
case S_OK:
{
// cas passant
}
break;
default:
{
}
}
}
}
else
{
}
}
else
{
}
}
}
} |
Partager