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