树形控件简单样例

此实例实现的功能:在一个树形控件中显示鸡啄米站点的简单结构分层,共同拥有三层。分别为鸡啄米站点、各个分类和文章。用鼠标左键单击改变选中节点后。将选中节点的文本显示到编辑框中。以下是详细实现步骤:

1. 创建一个基于对话框的MFCproject,名称设置为“Example31”。

2. 在自己主动生成的对话框模板IDD_EXAMPLE31_DIALOG中,删除“TODO: Place dialog controls here.”静态文本框、“OK”button和“Cancel”button。

加入一个Tree
Control控件。ID设置为IDC_WEB_TREE,属性Has Buttons、Has Lines和Lines At Root都设为True,为了在鼠标划过某个节点时显示提示信息还须要将Info Tip属性设为True。

3. 为树形控件IDC_WEB_TREE加入CTreeCtrl类型的控件变量m_webTree。

4. 在对话框初始化时,我们在树形控件中加入鸡啄米站点的树形结构,那么须要改动CExample31Dlg::OnInitDialog()函数为:

C++代码

  1. BOOL CExample31Dlg::OnInitDialog()
  2. {
  3. CDialogEx::OnInitDialog();
  4. ......略
  5. // TODO: Add extra initialization here
  6. HTREEITEM hRoot;     // 树的根节点的句柄
  7. HTREEITEM hCataItem; // 可表示任一分类节点的句柄
  8. HTREEITEM hArtItem;  // 可表示任一文章节点的句柄
  9. // 插入根节点
  10. hRoot = m_webTree.InsertItem(_T("鸡啄米"), 0, 0);
  11. // 在根节点下插入子节点
  12. hCataItem = m_webTree.InsertItem(_T("IT互联网"), 1, 1, hRoot, TVI_LAST);
  13. // 为“IT互联网”节点加入附加的编号数据,在鼠标划过该节点时显示
  14. m_webTree.SetItemData(hCataItem, 1);
  15. // 在“IT互联网”节点下插入子节点
  16. hArtItem = m_webTree.InsertItem(_T("百度文章1"), 2, 2, hCataItem, TVI_LAST);
  17. // 为“百度文章1”节点加入附加的编号数据,在鼠标划过该节点时显示
  18. m_webTree.SetItemData(hArtItem, 2);
  19. // 在“IT互联网”节点下插入还有一子节点
  20. hArtItem = m_webTree.InsertItem(_T("谷歌文章2"), 2, 2, hCataItem, TVI_LAST);
  21. // 为“谷歌文章2”节点加入附加的编号数据,在鼠标划过该节点时显示
  22. m_webTree.SetItemData(hArtItem, 3);
  23. // 在根节点下插入第二个子节点
  24. hCataItem = m_webTree.InsertItem(_T("数码生活"), 1, 1, hRoot, TVI_LAST);
  25. // 为“数码生活”节点加入附加的编号数据。在鼠标划过该节点时显示
  26. m_webTree.SetItemData(hCataItem, 4);
  27. // 在“数码生活”节点下插入子节点
  28. hArtItem = m_webTree.InsertItem(_T("智能手机文章1"), 2, 2, hCataItem, TVI_LAST);
  29. // 为“智能手机文章1”节点加入附加的编号数据,在鼠标划过该节点时显示
  30. m_webTree.SetItemData(hArtItem, 5);
  31. // 在“数码生活”节点下插入还有一子节点
  32. hArtItem = m_webTree.InsertItem(_T("平板电脑文章2"), 2, 2, hCataItem, TVI_LAST);
  33. // 为“平板电脑文章2”节点加入附加的编号数据。在鼠标划过该节点时显示
  34. m_webTree.SetItemData(hArtItem, 6);
  35. // 在根节点下插入第三个子节点
  36. hCataItem = m_webTree.InsertItem(_T("软件开发"), 1, 1, hRoot, TVI_LAST);
  37. // 为“软件开发”节点加入附加的编号数据,在鼠标划过该节点时显示
  38. m_webTree.SetItemData(hCataItem, 7);
  39. // 在“软件开发”节点下插入子节点
  40. hArtItem = m_webTree.InsertItem(_T("C++编程入门系列1"), 2, 2, hCataItem, TVI_LAST);
  41. // 为“C++编程入门系列1”节点加入附加的编号数据,在鼠标划过该节点时显示
  42. m_webTree.SetItemData(hArtItem, 8);
  43. // 在“软件开发”节点下插入还有一子节点
  44. hArtItem = m_webTree.InsertItem(_T("VS2010/MFC编程入门2"), 2, 2, hCataItem, TVI_LAST);
  45. // 为“VS2010/MFC编程入门2”节点加入附加的编号数据,在鼠标划过该节点时显示
  46. m_webTree.SetItemData(hArtItem, 9);
  47. // 在根节点下插入第四个子节点
  48. hCataItem = m_webTree.InsertItem(_T("娱乐休闲"), 1, 1, hRoot, TVI_LAST);
  49. // 为“娱乐休闲”节点加入附加的编号数据,在鼠标划过该节点时显示
  50. m_webTree.SetItemData(hCataItem, 10);
  51. // 在“娱乐休闲”节点下插入子节点
  52. hArtItem = m_webTree.InsertItem(_T("玛雅文明文章1"), 2, 2, hCataItem, TVI_LAST);
  53. // 为“玛雅文明文章1”节点加入附加的编号数据。在鼠标划过该节点时显示
  54. m_webTree.SetItemData(hArtItem, 11);
  55. // 在“娱乐休闲”节点下插入还有一子节点
  56. hArtItem = m_webTree.InsertItem(_T("IT笑话2"), 2, 2, hCataItem, TVI_LAST);
  57. // 为“IT笑话2”节点加入附加的编号数据,在鼠标划过该节点时显示
  58. m_webTree.SetItemData(hArtItem, 12);
  59. return TRUE;  // return TRUE  unless you set the focus to a control
  60. }

5. 我们希望在选中节点改变时,将最新的选择项实时显示到编辑框中,那么能够响应TVN_SELCHANGED通知消息。为树形控件IDC_WEB_TREE的通知消息TVN_SELCHANGED加入消息处理函数CExample31Dlg::OnTvnSelchangedWebTree,并改动函数体例如以下:

C++代码

  1. void CExample31Dlg::OnTvnSelchangedWebTree(NMHDR *pNMHDR, LRESULT *pResult)
  2. {
  3. LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
  4. // TODO: Add your control notification handler code here
  5. *pResult = 0;
  6. CString strText; // 树节点的标签文本字符串
  7. // 获取当前选中节点的句柄
  8. HTREEITEM hItem = m_webTree.GetSelectedItem();
  9. // 获取选中节点的标签文本字符串
  10. strText = m_webTree.GetItemText(hItem);
  11. }
时间: 2024-09-30 06:56:11

树形控件简单样例的相关文章

树形控件简单例子

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

Android 打造随意层级树形控件 考验你的数据结构和设计

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40212367,本文出自:[张鸿洋的博客] 1.概述 大家在项目中或多或少的可能会见到,偶尔有的项目须要在APP上显示个树形控件,比方展示一个机构组织,最上面是boss.然后各种部门.各种小boss,最后各种小罗罗.总体是一个树形结构.遇到这种情况,大家可能回去百度.由于层次多嘛,可能更easy想到ExpandableListView , 由于这玩意层级比Listview多.可是

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

Android 打造任意层级树形控件 考验你的数据结构和设计

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40212367,本文出自:[张鸿洋的博客] 1.概述 大家在项目中或多或少的可能会见到,偶尔有的项目需要在APP上显示个树形控件,比如展示一个机构组织,最上面是boss,然后各种部门,各种小boss,最后各种小罗罗:整体是一个树形结构:遇到这样的情况,大家可能回去百度,因为层次多嘛,可能更容易想到ExpandableListView , 因为这玩意层级比Listview多,但是E

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

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

js树形控件—zTree使用总结(转载)

0 zTree简介 树形控件的使用是应用开发过程中必不可少的.zTree 是一个依靠 jQuery 实现的多功能 “树插件”.优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点. 0.0 zTree的特点 最新版的zTree将核心代码按照功能进行了分割,不需要的代码可以不用加载,如普通使用只需要加载核心的jquery.ztree.core-3.5.js,需要使用勾选功能加载jquery.ztree.excheck-3.5.min.js,需要使用编辑功能加载jquery.ztree.e