我已经通过博客文章编写了TreeView控件的代码。我正在尝试将图标添加到列表项。但是没有渲染图标。 我有下一个代码:
imagecopy();
图标已添加到资源文件中。我有一个错误吗?我有一个带有下一个文本的消息框:“ resource1”,“ resource2”。
答案 0 :(得分:3)
m_tree_imglist
在堆栈中声明,该图像列表在OnInitialUpdate
退出后被销毁,因此CTreeCtrl
不再具有图像列表。
应该将图像列表声明为类成员,以便在CTreeCtrl
需要时它仍然有效。请注意,m_
前缀通常在MFC中用于表示“类成员”。
class CLeftView : public CTreeView
{
CImageList m_tree_imglist;
...
};
void CLeftView::OnInitialUpdate()
{
...
//CImageList m_tree_imglist; <- remove
tc.SetImageList(&m_tree_imglist, TVSIL_NORMAL);
}