CListCtrl显示透明PNG图片的问题
上边的图是我做出来的效果,用的是ListCtrl控件,但是里边的PNG不是透明的。下边是实现的部分代码
Bitmap* pThumbnail = (Bitmap*)bmp.GetThumbnailImage(sourceWidth, sourceHeight, NULL, NULL); //设定缩略图的大小
HBITMAP hBmp;
pThumbnail->GetHBITMAP(Color(255,255,255),&hBmp);
CBitmap *pImage = CBitmap::FromHandle(hBmp); //转换成CBitmap格式位图
TCHAR drive[MAX_PATH] = _T("");
TCHAR dir[MAX_PATH] = _T("");
TCHAR fname[MAX_PATH] = _T("");
TCHAR ext[MAX_PATH] = _T("");
_wsplitpath(path ,drive, dir,fname, ext);
CString itemName(fname);
itemName.Append(ext);
int index = m_imageList.Add(pImage,RGB(255,255, 255));
m_listCtrl.InsertItem(index, itemName, index);
Cimage mimage;
HRESULT hr = mimage.Load(szImageName);
for(int i = 0; i < mimage.GetWidth(); i++)
{
for(int j = 0; j < mimage.GetHeight(); j++)
{
unsigned char* pucColor = reinterpret_cast<unsigned char *>(mimage.GetPixelAddress(i , j));
pucColor[0] = pucColor[0] * pucColor[3] / 255;
pucColor[1] = pucColor[1] * pucColor[3] / 255;
pucColor[2] = pucColor[2] * pucColor[3] / 255;
}
}