第一种写法:
CImageList *m_imageList = new CImageList;
// 创建图像序列CImageList对象
m_imageList->Create(16, 16, ILC_COLOR8 | ILC_MASK, 3, 3);
// 将三个图标添加到图像序列
for (int i = 0; i < 3; i++)
{
m_imageList->Add(hIcon[i]);
}
tree->SetImageList(m_imageList, TVSIL_NORMAL);
第二种写法:
CImageList m_imageList;
// 创建图像序列CImageList对象
m_imageList.Create(16, 16, ILC_COLOR8 | ILC_MASK, 3, 3);
// 将三个图标添加到图像序列
for (int i = 0; i < 3; i++)
{
m_imageList.Add(hIcon[i]);
}
CImageList *m_imageList = new CImageList;
// 创建图像序列CImageList对象
m_imageList->Create(16, 16, ILC_COLOR8 | ILC_MASK, 3, 3);
// 将三个图标添加到图像序列
for (int i = 0; i < 3; i++)
{
m_imageList->Add(hIcon[i]);
}
tree->SetImageList(m_imageList, TVSIL_NORMAL);
第二种写法:
CImageList m_imageList;
// 创建图像序列CImageList对象
m_imageList.Create(16, 16, ILC_COLOR8 | ILC_MASK, 3, 3);
// 将三个图标添加到图像序列
for (int i = 0; i < 3; i++)
{
m_imageList.Add(hIcon[i]);
}
tree->SetImageList(&m_imageList, TVSIL_NORMAL);
原因:第二种实现的方式,m_imageList是局部变量,}符合后被释放,所以没有图标为空白的;
正确方式:全局变量或者指针;