Действительно ли возможно создать CImageList с альфа-прозрачностью смешивания?

Я хотел бы к knwo, если возможно создать CImageList с альфа-прозрачностью смешивания.

Пример кода, который создает CImageList с ужасной прозрачностью (никакое альфа-смешивание)

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));
5
задан sorin 14 April 2010 в 20:31
поделиться

1 ответ

Не используйте флаг ILC_MASK (из MSDN ):

Использование 32-битной защиты Псевдонимы значков

Списки изображений Windows XP, которые представляют собой коллекции изображений, используемых с определенными элементами управления, такими как элементы управления списком-представлением , поддерживают использование 32-битных {{1} }} сглаженные значки и растровые изображения. Значения цвета используют 24 бита, а 8 бит используются в качестве альфа-канала на значках. Для создания списка изображений, который может обрабатывать 32-битные -пиксель (бит / пиксель) изображения, вызовите функцию ImageList_Create , передав во флаге ILC_COLOR32 .

4
ответ дан 15 December 2019 в 00:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: