CBitmap mm;
CImageList img;方式一: img.Create(IDB_BITMAP1, 16, 0, RGB(192, 192, 192));方式二: mm.LoadBitmap(IDB_BITMAP1);
img.Create(16,16, ILC_COLOR8, 8, 8);
img.Add(&mm,RGB(192,192,192)); ---------**由于第一种方式不能载入高彩色的ImageList,但是第二种方法载入的ImageList总是有个黑色背景(由于**造成的,将RGB(192,192,192)全部换成了黑色),第一种办法没有黑色背景(因为它将RGB(192,192,192)全部换成了透明色。
为什么这两种方式效果不同?有没有解决的办法?即又可以载入高彩,又不会去不掉背景色?
CImageList img;方式一: img.Create(IDB_BITMAP1, 16, 0, RGB(192, 192, 192));方式二: mm.LoadBitmap(IDB_BITMAP1);
img.Create(16,16, ILC_COLOR8, 8, 8);
img.Add(&mm,RGB(192,192,192)); ---------**由于第一种方式不能载入高彩色的ImageList,但是第二种方法载入的ImageList总是有个黑色背景(由于**造成的,将RGB(192,192,192)全部换成了黑色),第一种办法没有黑色背景(因为它将RGB(192,192,192)全部换成了透明色。
为什么这两种方式效果不同?有没有解决的办法?即又可以载入高彩,又不会去不掉背景色?
img.Create(16,16, ILC_COLOR8, 1, 1);
HICON hIcon1 = AfxGetApp()->LoadIcon(IDI_ICON1);
HICON hIcon2 = AfxGetApp()->LoadIcon(IDI_ICON2); img.Add(hIcon1);
img.Add(hIcon2);
this->GetTreeCtrl ().SetImageList(&img,TVSIL_NORMAL);
this->GetTreeCtrl ().SetImageList(&img,TVSIL_STATE);
this->GetTreeCtrl ().InsertItem("abcd", 0, 0);
this->GetTreeCtrl ().InsertItem("1234", 1, 1);here IDI_ICON1 , IDI_ICON2 is 48 * 48 * 256color icon.
HICON hIcon1 = AfxGetApp()->LoadIcon(IDI_ICON1);
HICON hIcon2 = AfxGetApp()->LoadIcon(IDI_ICON2); img.Add(hIcon1);
img.Add(hIcon2);
this->GetTreeCtrl ().SetImageList(&img,TVSIL_NORMAL);
this->GetTreeCtrl ().SetImageList(&img,TVSIL_STATE);
this->GetTreeCtrl ().InsertItem("abcd", 0, 0);
this->GetTreeCtrl ().InsertItem("1234", 1, 1);
zdhe你的办法必须让我把BITMAP变成很多个ICON,每个LOAD。一来太烦、二来代码不够精炼,应该有办法可以两全的吧?
HIMAGELIST hImage = ImageList_LoadImage(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDB_BITMAP), 16, 1, RGB(R, G, B), IMAGE_BITMAP, 0);
img.Attach(hImage);完工了,祝好运。
[email protected]