c++ image mfc alphablending mfc-feature-pack

c++ - ¿Es posible crear una CImageList con transparencia de mezcla alfa?



mfc alphablending (1)

Me gustaría saber si es posible crear una CImageList con transparencia de fusión alfa.

Código de muestra que crea una CImageList con fea transparencia (sin mezcla alfa)

CGdiPlusBitmapResource m_pBitmap; m_pBitmap.Load(IDB_RIBBON_FILESMALL,_T("PNG"),AfxGetResourceHandle()); HBITMAP hBitmap; m_pBitmap.m_pBitmap->GetHBITMAP(RGB(0,0,0),&hBitmap ); CImageList *pList=new CImageList; CBitmap bm; bm.Attach(hBitmap); pList->Create(16, 16, ILC_COLOR32 | ILC_MASK, 0, 4); pList->Add(&bm, RGB(255,0,255));


No utilice el indicador ILC_MASK (desde MSDN ):

Uso de iconos antialias de 32 bits

Las listas de imágenes de Windows XP, que son colecciones de imágenes usadas con ciertos controles, como los controles de vista de lista, admiten el uso de iconos y mapas de bits antialias de 32 bits. Los valores de color usan 24 bits, y 8 bits se usan como un canal alfa en los iconos. Para crear una lista de imágenes que pueda manejar una imagen de 32 bits por píxel (bpp), llame a la función ImageList_Create que pasa en un indicador ILC_COLOR32 .