VC中treectrl的item前添加图标怎么去除背景色呀?

来源:百度知道 编辑:UC知道 时间:2024/05/16 01:03:20
我加的图标在电脑上看是没有背景色的,但是加到treectrl上后就成了有黑色背景的图标了,HICON icon[4];

icon[0]=AfxGetApp()->LoadIcon(IDI_ICON5);
icon[1]=AfxGetApp()->LoadIcon(IDI_ICON7);

CImageList *ImageList4Tree = new CImageList;
ImageList4Tree->Create(16,16,0,4,4); //16,16为图标分辩率,4,4为该list最多能容纳的图标数
/* ImageList4Tree->Create(IDI_ICON5,48,6,RGB(255, 255, 255));*/

for(int i=0;i<2;i++)
{
ImageList4Tree->Add(icon[i]); //读入图标

}
ImageList4Tree->SetBkColor(RGB(255, 255, 255));

m_Control.SetImageList(ImageList4Tree,TVSIL_NORMAL);

这样的代码设置也无效,谁能帮我解决呀?

这样设置试一下:
ImageList4Tree->Create(16,16, ILC_COLOR32, 4, 4);

去掉:
ImageList4Tree->SetBkColor(RGB(255, 255, 255));

另外,TVSIL_NORMAL意味着把图标设置成正常尺寸,正常尺寸的图标是32 * 32大小,而楼主写-ImageList4Tree->Create(16,16,0,4,4); 把图标设置成了小图标,虽然显示没什么问题,但太小看上去不舒服,这样再改一下,看看效果是不是会更好:
ImageList4Tree->Create(32,32, ILC_COLOR32, 4, 4);

图标文件(*.ico)是有很多种类的,楼主可能没做过图标文件的程序编码,因此在这里值得提醒一下,不同种类的图标需要用不同的程序代码,并不是千篇一律的。譬如图标文件中的图标种类会影响到ILC_COLOR32和16*16/32*32等参数的显示效果。