6

アルファブレンディングの透明度を持つ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));
4

1 に答える 1

5

ILC_MASKフラグを使用しないでください( MSDNから):

32ビットアンチエイリアスアイコンの使用

リストビューコントロールなどの特定のコントロールで使用される画像のコレクションであるWindowsXPイメージリストは、32ビットのアンチエイリアスアイコンとビットマップの使用をサポートします。カラー値は24ビットを使用し、8ビットはアイコンのアルファチャネルとして使用されます。32ビット/ピクセル(bpp)の画像を処理できる画像リストを作成するには、フラグImageList_Createを渡す関数を呼び出します。ILC_COLOR32

于 2010-04-14T20:44:10.683 に答える