高手救命啦! 关于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 );
...全文
92 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sad_4978 2007-12-12
  • 打赏
  • 举报
回复
用a通道。
skyler2008 2007-11-28
  • 打赏
  • 举报
回复
?????高手呢?????
sxcong 2007-11-27
  • 打赏
  • 举报
回复
BMP肯定有背景,只有PNG才是真正透明的。
如果想把BMP显示成透明效果,要自己在DC上画出来,使用面罩mask算法。在google上能找到很多这样的代码,这点就不说了。关键在于,ListCtrl可能要自绘

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧