MFC控件:树形控件(CTreeCtrl)

树形控件划分:

  根节点:所有都收缩后的节点

  节点:    能展开

  叶:  不能展开

  说明: 节点和叶不是绝对的划分,当在对叶添加新下属后,该叶变为节点

树形控件添加:

  节点结构体:  HTREEITEM ,用该结构体声明节点变量

  为控件添加项:  

HTREEITEM InsertItem(
LPCTSTR lpszItem,            //项名
int nImage,                //树视图控件图像列表中的项的图像的索引
int nSelectedImage,           //树视图控件图像列表中的项的所选图像的索引
HTREEITEM hParent = TVI_ROOT,     //插入的项的父级的句柄
HTREEITEM hInsertAfter = TVI_LAST  //新的项之前要插入的项的句柄
);注:添加项之前先设定根节点,在初始化

树形控件鼠标点击:

  判断鼠标位置

HTREEITEM CMyTreeDlg::GetSelectTree()
{
    CPoint pt;
    GetCursorPos(&pt);//得到当前鼠标的位置
    m_MyTree.ScreenToClient(&pt);//将屏幕坐标转换为客户区坐标
    HTREEITEM tree_Item = m_MyTree.HitTest(pt);//调用HitTest找到对应点击的树节点
    return tree_Item; //返回鼠标位置节点
}

  获取某项文本

  CString GetItemText(HTREEITEM hItem) const;

  获取指定关系项

  HTREEITEM GetNextItem( HTREEITEM hItem, UINT nCode) const;

  nCode标志可以是下列值之一︰TVGN_CARET检索当前所选的项。TVGN_CHILD检索由指定的项的第一个子项目hItem参数。TVGN_DROPHILITE检索拖放操作的目标的项。TVGN_FIRSTVISIBLE检索第一个可见项。TVGN_LASTVISIBLE检索在树中最后一个展开的项目。 这并不检索树视图窗口中可见的最后一项。TVGN_NEXT检索下一个同级项。TVGN_NEXTVISIBLE检索遵循指定的项的下一个可见项。TVGN_PARENT检索指定项的父级。TVGN_PREVIOUS检索前面的同级项。TVGN_PREVIOUSVISIBLE检索位于指定的项的第一个可见项。TVGN_ROOT检索指定的项的一部分的根项的第一个子级项。

  获取指定项的父项

  HTREEITEM GetParentItem(HTREEITEM hItem) const;

原文地址:https://www.cnblogs.com/sepmaple/p/9552957.html

时间: 2024-11-29 12:23:31

MFC控件:树形控件(CTreeCtrl)的相关文章

MFC树形控件的使用(右键点击)

概述 在MFC中,会用到树形控件,这里做下记录. 右键点击 1.添加右键点击事件(NM_RCLICK) 2.获得鼠标在Client的坐标 1 CPoint point; 2 GetCursorPos(&point);//获得鼠标在屏幕上的坐标 3 ::ScreenToClient(m_trdPageTree.GetSafeHwnd(),&point);//屏幕坐标转化为客户端坐标 3.测试该坐标点是否点中树形控件节点 1 UINT uFlags; 2 uFlags = TVHT_ONITE

树形控件CTreeCtrl的使用

树形控件在界面编程中应用十分普遍,如在资源管理器中和树形结构显示书的文件夹等,我们一步步研究树形控件的使用. 在对话框界面上首先拖动创建一个树,一般我们改变三个属性: Has Buttons显示带有"+"或"-"的小方框,表示某项是否能被展开或已展开,默觉得选中,我们改为选中. Has Lines在父项与子项之间连线以清楚地显示结构,默觉得选中,改为选中. Lines at root:在根部划线,默觉得选中,改为选中. 其余依据须要,能够改动,如Always sho

树形控件简单样例

此实例实现的功能:在一个树形控件中显示鸡啄米站点的简单结构分层,共同拥有三层.分别为鸡啄米站点.各个分类和文章.用鼠标左键单击改变选中节点后.将选中节点的文本显示到编辑框中.以下是详细实现步骤: 1. 创建一个基于对话框的MFCproject,名称设置为"Example31". 2. 在自己主动生成的对话框模板IDD_EXAMPLE31_DIALOG中,删除"TODO: Place dialog controls here."静态文本框."OK"

Qt树形控件QTreeView使用1——节点的添加删除操作 复选框的设置

QtreeView是ui中最常用的控件,Qt中QTreeWidget比QTreeView更简单,但没有QTreeView那么灵活(QTreeWidget封装的和MFC的CTreeCtrl很类似,没有mvc的特点). 1. QStandardItemModel在QTreeView中的使用 使用QTreeView的对应模型是QStandardItemModel,这个是Qt对应ui界面最有用的模型,它可以用于树形控件.列表控件.表格控件等等和条目有关的控件.QStandardItemModel用于列表

树形控件简单例子

此实例实现的功能:在一个树形控件中显示鸡啄米网站的简单结构分层,共有三层,分别为鸡啄米网站.各个分类和文章.用鼠标左键单击改变选中节点后,将选中节点的文本显示到编辑框中.下面是具体实现步骤: 1. 创建一个基于对话框的MFC工程,名称设置为"Example31". 2. 在自动生成的对话框模板IDD_EXAMPLE31_DIALOG中,删除"TODO: Place dialog controls here."静态文本框."OK"按钮和"

win32 sdk树形控件的项拖拽实现

本课中,我们将学习如何使用树型视图控件.另外还要学习如何在树型视图中完成拖-拉动作,以及如何使用图象列表. 理论: 树型视图是一种特别的窗口,我们可以使用它一目了然地表示某种层次关系.譬如象在资源管理器中左边窗口中的就是树型视图.您可以调用CreateWindowEx来创建树型视图,传递一个类名""SysTreeView32"",或者您也可以把它放到一个对话框中去.不要忘了在您的代码中加入InitCommonControls函数. 树型视图有几种特有的风格.下面是几

Web应用程序开发,基于Ajax技术的JavaScript树形控件

感谢http://www.cnblogs.com/dgrew/p/3181769.html#undefined 在Web应用程序开发领域,基于Ajax技术的JavaScript树形控件已经被广泛使用,它用来在Html页面上展现具有层次结构的数据项. 目前市场上常见的JavaScript框架及组件库中均包含自己的树形控件,例如jQuery.Dojo.YUI.Ext JS等,还有一些独立的树形控件,例如dhtmlxTree等,这些树形控件完美的解决了层次数据的展示问题. 展示离不开数据,树形控件主要

共有21款 jQuery 树形控件开源软件,第1页

JQuery Tree 插件 zTree zTree 是利用 JQuery 的核心代码,实现一套能完成大部分常用功能的 Tree 插件 兼容 IE.FireFox.Chrome 等浏览器 在一个页面内可同时生成多个 Tree 实例 支持 JSON 数据 支持一次性静态生成 和 Ajax 异步加载 两种方式 支持多种事件响应及反馈 支持 Tree...更多zTree信息 最近更新: [每日一博]Ztree+PHP 无限极节点递归查找节点 发布于 1年前 jQuery的Tree控件 jstree j

zTree 树形控件 ajax动态加载数据

很久没搞过树形控件了 , 再次接触看官网文档有点没懂,于是在网上找了个代码copy上,但数据是写死的,就想这在用ajax异步取出数据替换,下面是js代码 <SCRIPT type="text/javascript" > //定义全局ztree数据 var zNodes; /* 初始化ztree数据 */ function initZtree(){ $.ajax({ type: "GET", url: "<%=request.getCont