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 );
// 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 );
如果想把BMP显示成透明效果,要自己在DC上画出来,使用面罩mask算法。在google上能找到很多这样的代码,这点就不说了。关键在于,ListCtrl可能要自绘