本文介绍了是否可以创建一个具有alpha混合透明度的CImageList?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



创建一个具有丑陋透明度的CImageList的示例代码(无Alpha混合)

  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));


解决方案

不要使用 ILC_MASK 标志(来自):


I would like to knwo if it is possible to create a CImageList with alpha blending transparency.

Sample code that creates a CImageList with ugly transparency (no alpha blending)

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));
解决方案

Don't use the ILC_MASK flag (from MSDN):

这篇关于是否可以创建一个具有alpha混合透明度的CImageList?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-10 17:31