一个关于树控件的问题

九重霄 2003-10-08 01:20:46
在vc里面,用树控件反映出所有的文件和文件夹。
...全文
36 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
九重霄 2003-10-10
  • 打赏
  • 举报
回复
好的,谢谢了!请发到cx_ji@163.net
gaoxiaopai 2003-10-10
  • 打赏
  • 举报
回复
1、添加控件Tree control
2、写一个显示树节点的程序,放在对话框初始化程序中(最好使用递归)
下面是我程序的部分例子(其中pDatabaseInter是我写的数据库类)
hPrjItem = m_TreeCtrl.InsertItem(strComID , 10, 10, TVI_ROOT);是添加根结点
m_TreeCtrl.InsertItem(crack.strVARIANT(tomparas.variants[0]) , 11, 11, item[j]);添加字节点
void ListAll::abc()
{
try
{
long n=0;
CString strComID;
ParameterStruct paraStruct,refparas;
int i;
paraStruct.amount = 0;
pDatabaseInter->GetAllPrjs(¶Struct);
CCrack crack;
HTREEITEM hPrjItem,item;
for(i = 0; i < paraStruct.amount; i ++)
{
strComID = crack.strVARIANT(paraStruct.variants[i]);
hPrjItem = m_TreeCtrl.InsertItem(strComID , 10, 10, TVI_ROOT);
refparas.amount =0;
pDatabaseInter->GetDraw(strComID, &refparas);
if(refparas.amount !=0)
item=m_TreeCtrl.InsertItem(crack.strVARIANT(refparas.variants[0]) , 11, 11, hPrjItem);
BuildPartTree(strComID, strComID, hPrjItem, n);
}
}
catch(CInterRecordsetOpenException)
{
AfxMessageBox("不能打开数据库结果集,请核对你的SQL语句");
return;
}
catch(CInterException)
{
AfxMessageBox("数据库或表格未能打开");
return;
}
}

void ListAll::BuildPartTree(CString &strID, CString &strID1, HTREEITEM hItem, long n)
{
CString strmapno,strIDName,strNewName;
CCrack crack;
ParameterStruct refparas,filparas,tomparas;
HTREEITEM item[50],itemr;
try
{
refparas.amount = 0;
pDatabaseInter->GetRootParts(strID, strID1, &refparas, n);
for(int j = 0; j < refparas.amount; j ++)
{
pDatabaseInter->GetPart1(crack.strVARIANT(refparas.variants[j]), strID, strID1, &filparas, n);
mapNo=(long)StrToInt((LPCTSTR)crack.strVARIANT(filparas.variants[6]));
item[j] = m_TreeCtrl.InsertItem(crack.strVARIANT(refparas.variants[j]), mapNo, mapNo, hItem);
tomparas.amount = 0;
pDatabaseInter->GetDraw(crack.strVARIANT(refparas.variants[j]), &tomparas);
if(tomparas.amount !=0)
itemr=m_TreeCtrl.InsertItem(crack.strVARIANT(tomparas.variants[0]) , 11, 11, item[j]);

BuildPartTree(crack.strVARIANT(refparas.variants[j]), strID1, item[j], n+1);
}
}
catch(CInterException)
{
throw;
}
}
daylight1980 2003-10-08
  • 打赏
  • 举报
回复
我有例程序。要得话发给你。

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧