//函数功能:将树列表中的item写到文件中
//函数参数 : CTreeCtrl 树控件的引用
// CString 要写入的文件名
//返回值 0 成功 1-失败,树为空
CString GetCurrentItemPath(CTreeCtrl & t,HTREEITEM & item)
{
CString strFilePath;
vector<HTREEITEM> vt;
HTREEITEM hNewItem = item;
while(hNewItem!=NULL)
{
vt.push_back(hNewItem);
hNewItem=t.GetParentItem(hNewItem);
}
for(int i=0;i<vt.size();i++)
{
hNewItem=vt.at(vt.size()-i-1);
strFilePath +=t.GetItemText(hNewItem)+_T("\\");
}
int offsert=strFilePath.ReverseFind(_T('\\'));
strFilePath=strFilePath.Left(offsert);
DWORD data=(DWORD)t.GetItemData(item);
CString sz2;
sz2.Format(_T("%s;%ld"),strFilePath,data);
return sz2;
}
/*****************************************************************************************
//:函数功能:展开树
//函数参数:CTreeCtrl :传递树控件的引用
/*****************************************************************************************/
void TreeExpandAll( CTreeCtrl *m_pCurLevelTree )
{
HTREEITEM hItem = m_pCurLevelTree->GetRootItem();
m_pCurLevelTree->Expand(hItem,TVE_EXPAND);
int n = m_pCurLevelTree->GetCount();
while( hItem && n--)
{
//ilevel=GetItemLevel(*m_pCurLevelTree,hItem);
hItem =m_pCurLevelTree->GetNextVisibleItem( hItem );
m_pCurLevelTree->Expand(hItem,TVE_EXPAND);
}
}
/*****************************************************************************************
//:函数功能:读取保存数item的文件,并将构造CTreeCtrl树
//函数参数:CTreeCtrl :传递树控件的引用
// CString :文件名
//函数返回值:0--成功 1-树为空 失败 2-文件名不正确--失败 3--文件中无内容--失败
/*****************************************************************************************/
int GetTreeFromFile(CTreeCtrl &t,CString strFileName)
{
int pos;
CString itemtext,strData,szLine,temp;
bool first=true;
DWORD data; //读取每行的字符串
if(strFileName.IsEmpty())