我想作一个类似MSDN左侧目录树结构,树节点从数据库中导入,树节点的级数可任意增加,结点中有目录和文档两种类型,当单击目录树时只扩展结点,当单击文档类型结点是在右边视中显示文档内容。哪里有类似示例VC++源码文件,送100分.
解决方案 »
- 为操作系统系统添加一个小功能,“目录拷贝命令”的VC代码
- 急啊~~线程的问题
- 请教一个逐个压缩的问题 急~
- 一个数据库的问题,不知错在哪了?
- 想学VC的一点困惑
- VB调用VC写的DLL的时候,不能使用DLL里面定义的函数,怎么办?在线等!!急啊急!!!!
- 模拟鼠标左键,点击某网站网页,为何不起作用?
- 用Install shield如何做unstall程序???
- 从资源管理器把文件或文件夹拖出来时,作为接收方的程序(已成功注册COleDropTarget)在OnDrop时如何得到此文件(最好是CFile *)
- CSDN密码忘记怎么班????????
- 谁有数据库记录构建树节点的VC源代码
- ??????用tc编译的dos程序和vc编译的win32控制台程序有什么区别吗????
http://www.vckbase.com/document/viewdoc/?id=439
void CTreeViewEx::TreeAddSubTree(INT pID, CString strChildTree, HTREEITEM hPartItem)
{ if (strChildTree != "0") //需要导入数据
{
CAdoRecordSet adoRec;
CAdoConnection con; //因存在递归调用不能使用CAdoSQL类 if(con.ConnectSQLServer(theApp.g_tagIni.ComputerName, theApp.g_prj.aliasName,theApp.g_loginUser.name, theApp.g_loginUser.password))
{
TRACE("con联接成功\n");
adoRec.SetAdoConnection(&con);
}
//--------------当前树节点------------------------
HTREEITEM hCurrent;
//----------------------------------------------
CString strSQL,strCurItem,sID,tmp;
//-----------------------------------------------
sID.Format("%d",pID);
strSQL="SELECT * FROM " + m_treeTable + " WHERE pID=" + sID ;
try
{
//----------------------------------------------------
adoRec.RunSqlText(strSQL);
INT count =adoRec.GetRecordCount();
if(count > 0)
{
adoRec.MoveFirst();
if (!adoRec.IsEOF())
{
while(!adoRec.IsEOF())
{
CString addStr;
adoRec.GetCollect("CLASS",addStr);
INT id,pid;
adoRec.GetCollect("ID",id);
adoRec.GetCollect("pID",pid);
if(pid!=0)
hCurrent = m_pTreeCtrl->AddItem(addStr,2,3,hPartItem);
else
hCurrent = hPartItem;
if (TreeSumRecordCount(id) > 0) //当前子树下是否还有子树
{
adoRec.GetCollect("CLASS",tmp);
TreeAddSubTree(id, tmp, hCurrent);
}
if(!adoRec.IsEOF()) //当从第一次最深的循环完后,从些函数退出,又进入这一行执行
adoRec.MoveNext();
} //while }// if (!recSet.IsEOF()) } //if(count > 0)
} //end try
catch(_com_error e)///捕捉异常
{
CString errormessage;
MessageBox("创建记录集失败!");
}
}}