树控件如何用?小弟我这样为什么不行
树控件怎么用?我这样为什么不行?
我是要ABC作为根目录,把a插入到A的下面。但是只有ABC,a没出来
网上看到一个教程,但是感觉这个麻烦
我那样为什么不行?添点什么怎么才行?我想不能非要用下面这种方法吧
------解决方案--------------------
这样可以,但是需要你手动双击 A 展开才能看到子项。默认情况下,在一个没有指定“有子项”属性的项目下面插入子项,不会显示加号。TreeView 控件在插入项目的时候,LPTVINSERTSTRUCT 结构体中的 TVITEM 或 TVITEM 结构中的 mask 成员必须指定 TVIF_CHILDREN,cChildren 成员必须设置为 1,插入后能看到加号“+”。也可以不用指定,就按你现有写法,但是发一个展开的消息,加号也能出来。
我是要ABC作为根目录,把a插入到A的下面。但是只有ABC,a没出来
网上看到一个教程,但是感觉这个麻烦
- C/C++ code
//初始化树形控件节点 TV_INSERTSTRUCT treeCtrlItem; HTREEITEM hTreeItem; treeCtrlItem.hInsertAfter = TVI_LAST; treeCtrlItem.item.mask = TVIF_TEXT|TVIF_PARAM; //设置第一级节点 treeCtrlItem.hParent = TVI_ROOT; treeCtrlItem.item.pszText = "C:"; treeCtrlItem.item.lParam = 1; //根 hTreeItem = m_tree.InsertItem(&treeCtrlItem); //设置第二级节点 treeCtrlItem.hParent = hTreeItem;
我那样为什么不行?添点什么怎么才行?我想不能非要用下面这种方法吧
------解决方案--------------------
这样可以,但是需要你手动双击 A 展开才能看到子项。默认情况下,在一个没有指定“有子项”属性的项目下面插入子项,不会显示加号。TreeView 控件在插入项目的时候,LPTVINSERTSTRUCT 结构体中的 TVITEM 或 TVITEM 结构中的 mask 成员必须指定 TVIF_CHILDREN,cChildren 成员必须设置为 1,插入后能看到加号“+”。也可以不用指定,就按你现有写法,但是发一个展开的消息,加号也能出来。
- C/C++ code
HTREEITEM hA = m_tree.InsertItem(_T("A")); HTREEITEM hB = m_tree.InsertItem(_T("B")); HTREEITEM hC = m_tree.InsertItem(_T("C")); m_tree.InsertItem(_T("a"), hA); m_tree.Expand(hA, TVE_EXPAND);