Ejemplo n.º 1
0
void FolderView::UpdateItem(HTREEITEM hitem)
{
	TVITEM item;
	TCHAR name[MAX_PATH];

	item.mask = TVIF_CHILDREN | TVIF_HANDLE | TVIF_IMAGE | TVIF_PARAM | TVIF_SELECTEDIMAGE | TVIF_STATE | TVIF_TEXT;
	item.stateMask = TVIS_EXPANDED;
	item.hItem = hitem;
	item.pszText = name;
	item.cchTextMax = MAX_PATH;

	if (tree_->GetItem(&item))
	{
		ShellFolder* shl_folder= reinterpret_cast<ShellFolder*>(item.lParam);
		shl_folder->Reset();

		if (!shl_folder->IsExisting())
		{
			tree_->DeleteItem(hitem);
			return;
		}

		UpdateSubItem(item);
		UpdateItemProperty(item);
	}

	if (hitem = tree_->GetChildItem(hitem))
		while (hitem)
		{
			UpdateItem(hitem);
			hitem = tree_->GetNextSiblingItem(hitem);
		}
}
Ejemplo n.º 2
0
void CSortListCtrl::SetItemColor(int nItem, int nSubItem, COLORREF clrText, COLORREF clrBkgnd)
{
	ASSERT(nItem >= 0);
	ASSERT(nItem < GetItemCount());
	if ((nItem < 0) || nItem >= GetItemCount())
		return ;
	ASSERT(nSubItem >= 0);
	ASSERT(nSubItem < GetColumns());
	if ((nSubItem < 0) || nSubItem >= GetColumns())
		return ;
	
	
	if (nItem < 0)
		return ;
	
	
	ItemData *pid = (ItemData *) CListCtrl::GetItemData(nItem);
	if (pid)
	{
		(pid->crText)[nSubItem]		 = (clrText == -1) ? crWindowText : clrText;
		(pid->crBak)[nSubItem]		 = (clrBkgnd == -1) ? crWindow : clrBkgnd;
	}
	
	UpdateSubItem(nItem, nSubItem);

}