16,471
社区成员
发帖
与我相关
我的任务
分享
1,^目录|-- app
2,^文件|-- BaiduMap.apk
2,^目录|-- com.sina.weibo-1
3,^文件|-- base.apk
3,^目录|-- lib
4,^目录|-- arm
5,^文件|-- libgpufilterengine.so
5,^文件|-- libxiaoka.so
5,^文件|-- libweibosdl.so
5,^文件|-- libimgreduce.so
5,^文件|-- libst_sensear.so
2,^文件|-- lib
1,^目录|-- misc
void CAboutDlg::FillTree()
{
HTREEITEM pParentItem[4096] = { 0 };
m_hRoot=m_tree.InsertItem("Root", 0, 0, TVI_ROOT);
pParentItem[0] = m_hRoot;
//
int currentDepth=0;
HTREEITEM sonTreeItem;
CStdioFile file;
file.Open("ok1.txt", CFile::modeRead);
CString str;
while (file.ReadString(str))
{
int pos1 = str.Find(",^");
if (pos1 !=-1)
{
CString Name;
currentDepth = atoi(str.Left(pos1));
pos1 = str.Find("-- ");
Name = str.Right(str.GetLength() - pos1 -3);
//afxDump <<currentDepth<< ";" << Name << "\n";
sonTreeItem = m_tree.InsertItem(Name, pParentItem[currentDepth]);
pParentItem[currentDepth+1] = sonTreeItem;
}
}
file.Close();
}
BOOL CLeftView::AddAnyItem(char *riffName,char *riffType,DWORD dataSize,DWORD Offset,
int TreeLevel,BOOL hasChild)
{
CString str;
str.Format("%s %s %d 0x%X",riffName, riffType,dataSize, Offset);
TVINSERTSTRUCT tvis;
ZeroMemory(&tvis,sizeof(tvis));
//
tvis.hInsertAfter = TVI_LAST;
tvis.item.mask = TVIF_TEXT | TVIF_CHILDREN;
tvis.item.cchTextMax = str.GetLength();
tvis.item.pszText = str.GetBuffer(0);
//
CTreeCtrl& LeftTree=GetTreeCtrl();
switch(TreeLevel)
{
case 0:
tvis.hParent = TVI_ROOT;
if(hasChild) tvis.item.cChildren =1;
m_hTreeItem0 = LeftTree.InsertItem(&tvis);
break;
case 1:
tvis.hParent = m_hTreeItem0;
if(hasChild) tvis.item.cChildren =1;
m_hTreeItem1 = LeftTree.InsertItem(&tvis);
break;
case 2:
tvis.hParent = m_hTreeItem1;
if(hasChild) tvis.item.cChildren =1;
m_hTreeItem2 = LeftTree.InsertItem(&tvis);
break;
case 3:
tvis.hParent = m_hTreeItem2;
if(hasChild) tvis.item.cChildren =1;
m_hTreeItem3 = LeftTree.InsertItem(&tvis);
break;
}
//
return TRUE;
}
void CTestTreeViewDlg::OnBnClickedButton1()
{
FILE* pFile = fopen("E:\\\ok2.txt", "r");
INT currentDepth=1; //当前深度
INT previousDepth=1; //上次深度
HTREEITEM pTreeItem[4096] = { 0 };
int iSel = 1;
pTreeItem[1] = m_hRoot;
HTREEITEM currentTreeItem= m_hRoot;//当前节点
HTREEITEM sonTreeItem= m_hRoot;//上次节点
HTREEITEM fatherTreeItem = m_hRoot;//上次节点的父节点
int maxLevel = 1;
char cData[256];
memset(cData, 0, 256);
fgets(cData, 256, pFile);
while (strcmp(cData, "") != 0)
{
CString strData(cData);
if (strData.GetLength() != 0)
{
int pos1 = strData.Find(",^");
if (pos1 !=-1)
{
CString Name;
CString depth;
currentDepth = atoi(strData.Left(pos1));
pos1 = strData.Find("-- ");
Name = strData.Right(strData.GetLength() - 1 - pos1 -1 );
if (currentDepth > previousDepth) //当前节点大于上次节点 这次新加子节点
{
sonTreeItem = m_tree.InsertItem(Name, pTreeItem[currentDepth]);
pTreeItem[currentDepth + 1] = sonTreeItem;
previousDepth = currentDepth;
maxLevel++;
int cc = 0;
}
else if (currentDepth == previousDepth) //当前节点等于上次节点 这次新加平级节点
{
sonTreeItem = m_tree.InsertItem(Name, pTreeItem[currentDepth]);
pTreeItem[currentDepth+1] = sonTreeItem;
}
else //(currentDepth < previousDepth)
{
sonTreeItem = m_tree.InsertItem(Name, pTreeItem[currentDepth]);
pTreeItem[currentDepth + 1] = sonTreeItem;
previousDepth = currentDepth;
int cc = 0;
}
}
}
memset(cData, 0, 256);
fgets(cData, 256, pFile);
}
fclose(pFile);
// initf2fs(this);
}
解决了求人不如求己啊~~~~