比如像资源管理器里的文件夹在展开的时候,图标换成展开的图标,如何写呢?
void CXXXXDlg::OnItemExpandingTree(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
if (TVE_EXPAND == pNMTreeView->action)
{
pNMTreeView->itemNew.iImage = 3;// 3是我的imagelist中的想改图标
pNMTreeView->itemNew.iSelectedImage = 3;
UpdateData(FALSE);
}
*pResult = 0;
}
这样写不管用啊!换成pNMTreeView->itemOld也不成,为什么啊?应该怎么写的?
谢谢~
void CXXXXDlg::OnItemExpandingTree(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
if (TVE_EXPAND == pNMTreeView->action)
{
pNMTreeView->itemNew.iImage = 3;// 3是我的imagelist中的想改图标
pNMTreeView->itemNew.iSelectedImage = 3;
UpdateData(FALSE);
}
*pResult = 0;
}
这样写不管用啊!换成pNMTreeView->itemOld也不成,为什么啊?应该怎么写的?
谢谢~
m_TreeCtrlItem.item.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
pNMTreeView结构还用设置mask吗?
pNMTreeView->itemNew.iSelectedImage = 新的;
HICON icon[2];
icon[0]=AfxGetApp()->LoadIcon (IDI_TREE2);
icon[1]=AfxGetApp()->LoadIcon (IDI_TREE1); m_pimagelist->Create(16, 16, TRUE | ILC_COLOR16, 4, 0);
m_pimagelist->SetBkColor (RGB(255,255,255));
m_pimagelist->Add(icon[0]); //把图标载入图像列表控件
m_pimagelist->Add(icon[1]); //把图标载入图像列表控件
CTreeCtrl* pTree=&GetTreeCtrl();
pTree->SetImageList(m_pimagelist,TVSIL_NORMAL); //为tree设置一个图像列表,使CtreeCtrl的节点显示不同的图标
pTree->SetTextColor(RGB(0,0,220));//设置tree的背景色*/
pTree->SetBkColor(RGB(255,255,255));//设置tree的背景色*/pItem = pTree->InsertItem( TP_AREA, 0, 1, ParentItem );
或则
pItem = pTree->InsertItem( TP_AREA, 1, 0, ParentItem );
供大家参考:INT_TREEITEM_IMAGE_COLLAPSE与INT_TREEITEM_IMAGE_EXPAND是const int类型// 更改展开的图标
void CXXXXDlg::OnItemExpandingTemplateTree(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
if (TVE_EXPAND == pNMTreeView->action)
m_TreeReportTemplate.SetItemImage(
pNMTreeView->itemNew.hItem,
INT_TREEITEM_IMAGE_EXPAND,
INT_TREEITEM_IMAGE_EXPAND);
*pResult = 0;
}// 更改折叠的图标
void CXXXXDlg::OnItemExpandedTemplateTree(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
if (TVE_COLLAPSE == pNMTreeView->action)
m_TreeReportTemplate.SetItemImage(
pNMTreeView->itemNew.hItem,
INT_TREEITEM_IMAGE_COLLAPSE,
INT_TREEITEM_IMAGE_COLLAPSE);
*pResult = 0;
}