速进::有关 树视控件 查找节点、指向路径问题!请高人指点!不胜感激!
我在利用树形控件编写资源管理器。
遇到问题如下:
如何获取E盘根目录的节点。目标路径就是“E盘根目录”,我怎么把路径转化成树形控件的节点。
如图:现在已有的资源管理器界面,如下:

现在的根节点,是指向桌面的,我想改成指向E盘根目录。运行如下图:

以上,是我的问题。初始化函数代码如下:
遇到问题如下:
如何获取E盘根目录的节点。目标路径就是“E盘根目录”,我怎么把路径转化成树形控件的节点。
如图:现在已有的资源管理器界面,如下:

现在的根节点,是指向桌面的,我想改成指向E盘根目录。运行如下图:

以上,是我的问题。初始化函数代码如下:
void DirTreeView::OnInitialUpdate()
{
CTreeView::OnInitialUpdate();
CTreeCtrl &Tree=GetTreeCtrl();
LPSHELLFOLDER lpsf=NULL; //IShellFolder接口
LPITEMIDLIST lpi=NULL; //ITERMIDLSIT结构体指针
HRESULT hr;
TV_ITEM tvi;
CImageList m_Image;//记录的是与树型控件关联的图像列表
SHFILEINFO sfi;//存放文件信息的结构
HIMAGELIST sys_small_icon;
sys_small_icon = (HIMAGELIST)SHGetFileInfo(NULL,0,&sfi,sizeof(sfi),
SHGFI_SYSICONINDEX|SHGFI_SMALLICON);
m_Image.Attach(sys_small_icon);
Tree.SetImageList(&m_Image,TVSIL_NORMAL);//将系统图像列表设为树控件的图象列表
m_Image.Detach ();
// 得到指向“桌面”的指针
hr=SHGetDesktopFolder(&lpsf);
SHGetSpecialFolderLocation(NULL,CSIDL_DESKTOP,&lpi);
if (SUCCEEDED(hr))
{
Tree.DeleteAllItems();
char szBuff[MAX_PATH];//存放显示名称的缓冲区
TV_INSERTSTRUCT tvis; //向树型控件中插入节点时使用的结构
tvi.mask = TVIF_TEXT | TVIF_IMAGE |
TVIF_SELECTEDIMAGE | TVIF_CHILDREN ; //设置要插入的树节点信息
if(GetName(lpsf,lpi,SHGDN_NORMAL,szBuff)==FALSE)
return;
tvi.pszText = szBuff;//设置显示名称
GetNormalAndSelectedIcons(lpi, &tvi);
tvis.item = tvi;
tvis.hParent = TVI_ROOT;
hParent = GetTreeCtrl().InsertItem(&tvis);//插入根节点
// HTREEITEM hNext = GetTreeCtrl().GetNextItem(hParent,TVGN_NEXTVISIBLE);
// HTREEITEM hChild = GetTreeCtrl().GetNextItem(hNext,TVGN_NEXT);
// HTREEITEM hNext1 = GetTreeCtrl().GetNextItem(hNext1,TVGN_NEXT);
FillTreeView(lpsf, NULL, hParent);
GetTreeCtrl().Expand (hParent,TVE_EXPAND);//展开“桌面”节点
lpsf->Release ();
}
}
...全文
相关推荐
输出树的根节点到叶子节点的所有路径
输出树的根节点到叶子节点的所有路径,用递归实现
哈夫曼树的建立和查找节点
查找哈夫曼树中的节点,即根据给定的哈夫曼编码在树中寻找对应的字符,是从根节点开始,沿着编码指示的路径向下遍历,左分支对应0,右分支对应1,直到到达叶子节点。
无限级树正向查找、反向查找例子【递归实现】
在实际应用中,通常通过节点对象存储数据,包含节点值、子节点列表等属性。**二、正向查找**正向查找,也称为自底向上查找,是从叶子节点开始,沿着父节点路径向上查找目标节点的过程。
B树、B-树、B+树、B*树
- **平衡性**:理想情况下,所有非叶子节点的左右子树节点数量大致相等,这使得B树接近于二分查找的时间复杂度。
Path-Finding-Problem:节点之间的最短路径查找问题!
寻路问题!! 节点之间的最短路径查找问题! 这个任务是基于 Node Js 的!! 你必须在你的机器上安装 node js 服务器!! Node js 被许多操作系统支持,比如 windows 或 l


界面
