高手救命啦! 关于ListCtrl加载透明位图!

skyler2008 2007-11-27 09:19:22
ListCtrl控件中怎么能使加载的Bitmap背景色和窗体的背景色一致呀,即不显示Bitmap的背景色, 请高手指教? 我现有程序段如下,Bitmap背景为白色, 问题是运行时Bitmap的背景色始终存在.
// CImageList m_ImageListUM_SmallIcon; // 窗口类成员变量
// CListCtrl m_ListCtrlUM_UserInf; // 窗口类的ListCtrl关联成员变量
// res_directory + CONST_BMPICON_UM_RISE: // Bitmap完整路径(例如: "......\\test.bmp");


// 添加BitmapList
pMainDlg-> m_ImageListUM_SmallIcon.Create( 16, 16, ILC_COLORDDB ¦ ILC_MASK, 2, 1 );

HBITMAP hBitmap;
CBitmap Bitmap;
hBitmap = (HBITMAP)::LoadImage( AfxGetInstanceHandle(), res_directory + CONST_BMPICON_UM_RISE, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE ¦ LR_CREATEDIBSECTION );
Bitmap.Attach( hBitmap );
pMainDlg-> m_ImageListUM_SmallIcon.Add( &Bitmap, RGB(255,255,255 ) );
Bitmap.DeleteObject();

hBitmap = (HBITMAP)::LoadImage( AfxGetInstanceHandle(), res_directory + CONST_BMPICON_UM_DROP, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE ¦ LR_CREATEDIBSECTION );
Bitmap.Attach( hBitmap );
pMainDlg-> m_ImageListUM_SmallIcon.Add( &Bitmap, RGB(255,255,255 ) );
Bitmap.DeleteObject();

pMainDlg-> m_ListCtrlUM_UserInf.SetImageList( &pMainDlg-> m_ImageListUM_SmallIcon, LVSIL_SMALL );
...全文
65 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sad_4978 2007-12-12
用a通道。
回复
skyler2008 2007-11-28
?????高手呢?????
回复
sxcong 2007-11-27
BMP肯定有背景,只有PNG才是真正透明的。
如果想把BMP显示成透明效果,要自己在DC上画出来,使用面罩mask算法。在google上能找到很多这样的代码,这点就不说了。关键在于,ListCtrl可能要自绘
回复
相关推荐
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2007-11-27 09:19
社区公告
暂无公告