在MFC中获取Windows标准窗口句柄可以通过Findwindow 函数获取;在程序中可以通过Findwindow系列函数获取到TreeView类窗口的句柄,但TreeView包含的控件想要对其进行操作,就得获取其节点信息那么下面谈谈TreeView类
TreeView类对象就相当于创建一个放置节点的容器
控件的整体叫做TreeView类
mainTree.Nodes则表示一个TreeNodeCollection类,其中mainTree为一个TreeView控件名
mainTree的几个常用方法:
1.添加根节点mainTree.Nodes.Add(nodeName);
//mainTree类型为TreeView,mainTree.Nodes为TreeNodeCollection类型
2.添加子节点mainTree.SelectedNode.Nodes.Add(nodeName);
//mainTree.SelectedNode为TreeNode类型,mainTree.SelectedNode.Nodes为TreeNodeCollection类型
3.mainTree.ExpandAll():展开所有节点
4.mainTree.CollapseAll():关闭所有节点
5.mainTree.Nodes.Clear():清除所有节点
6.mainTree.SelectedNode.Remove():清除所选节点
7.mainTree.Nodes.Count:表示树上的节点数
TreeView中的每个节点成为TreeNode类
TreeNode连起来称为TreeNodeColletion类
、
那么如何通过TreeView句柄获取类中的节点呢
TVM_GETNEXTITEM:得到项目的句柄(参数:TVGN_ROOT得到根句柄,TVGN_NEXTVISIBLE得到下一个可见项目的句柄);
例如:
HTREEITEM hRootItem = (HTREEITEM)::SendMessage(hwnd,TVM_GETNEXTITEM, TVGN_ROOT, 0);//得到根节点
HTREEITEM hRootItem = (HTREEITEM)::SendMessage(hwnd,TVM_GETNEXTITEM, TVGN_NEXTVISIBLE, 0);//得到下一个节点
::SendMessage(hwnd,TVM_EXPAND,TVE_EXPAND,(long)hRootItem);//展开根节点
//TVM_EXPAND:展开或折叠指定项目(参数:TVE_EXPAND展开指定项目);