mfc树控件ctreectrl

Mr康康 Mr康康     2022-08-09     469

关键词:

1.常用属性

属性

含义

has buttons

True 有展开按钮

has lines

True 有展开线

lines at root

True 有根节点

2.常用接口

接口

功能

AfxGetApp()

获取应用程序对象指针

CWinApp::LoadIcon

加载自定义图标

CImageList::Create

创建图像列表

CImageList::Add

图像列表追加图标

CTreeCtrl::SetImageList

设置图形状态列表

CTreeCtrl::InsertItem

插入节点

CTreeCtrl::SelectItem

设置默认选中项

CTreeCtrl::GetSelectedItem

获取选中项

CTreeCtrl::GetItemText

获取某项内容

3.代码实现

    //图片Icon
    HICON icons[4];
    //获取全局的APP对象
    icons[0] = AfxGetApp()->LoadIconW(IDI_ICON1);//IDI_ICON1为图片ID
    icons[1] = AfxGetApp()->LoadIconW(IDI_ICON2);//...
    icons[2] = AfxGetApp()->LoadIconW(IDI_ICON3);
    icons[3] = AfxGetApp()->LoadIconW(IDI_ICON4);

    //设置使用的图片
    //创建图片
    m_imagelist.Create(30, 30, ILC_COLOR32, 3, 3);
    for (int i = 0; i < 4; i++)
    {
        m_imagelist.Add(icons[i]);
    }

    //准备图片
    m_tree.SetImageList(&m_imagelist, TVSIL_NORMAL);

    //创建节点
    //参数 1.显示内容 2,3显示图片  4.父节点
    HTREEITEM rootItem = m_tree.InsertItem(TEXT("根节点"), 0, 0, NULL);
    HTREEITEM parentItem = m_tree.InsertItem(TEXT("父节点"), 1, 1, rootItem);
    HTREEITEM subItem1 = m_tree.InsertItem(TEXT("子节点"), 2, 2, parentItem);
    HTREEITEM subItem2 = m_tree.InsertItem(TEXT("子节点"), 2, 2, parentItem);

    //设置默认选中
    m_tree.SelectItem(subItem2);

   效果展示:

技术分享

mfc控件:树形控件(ctreectrl)(代码片段)

树形控件划分:  根节点:所有都收缩后的节点  节点:   能展开  叶:  不能展开  说明: 节点和叶不是绝对的划分,当在对叶添加新下属后,该叶变为节点树形控件添加:  节点结构体:  HTREEI... 查看详情

树控件

1、相关类  CTreeCtrl-树控件,父类是CWnd,是一个控件,通常在对话框中使用。  CTreeView-树视图,父类是CCtrlView,是一个视图,通常在文档视图应用程序中使用。    通过调用CTreeView::GetTreeCtrl,获取控件2、CTreeCtrl的使用... 查看详情

暂停渲染/绘图 CTreeCtrl (MFC)

】暂停渲染/绘图CTreeCtrl(MFC)【英文标题】:PauseRendering/DrawingCTreeCtrl(MFC)【发布时间】:2013-07-0313:11:38【问题描述】:在展开/折叠树中的所有节点等昂贵操作期间,有没有办法暂停CTreeCtrl或其CTreeView的渲染?如果没有像PauseRendering... 查看详情

如何在运行时创建的 MFC 中获取 Treeview(CTreeCtrl) 的 Click 事件?

】如何在运行时创建的MFC中获取Treeview(CTreeCtrl)的Click事件?【英文标题】:HowtogetClickEventofTreeview(CTreeCtrl)inMFCcreatedatruntime?【发布时间】:2010-09-2105:19:48【问题描述】:我在MFC应用程序的运行时创建了一个树视图,我添加了几个... 查看详情

mfc:使用ctreectrl和ctoolbar创建一个类(cwnd?)(代码片段)

我有一个基于CDialog的应用程序,有两个并排的CTreeCtrl,两棵树上面都有几乎相同的CToolbars。目前,当对话框从其中一个工具栏收到消息时,它会将消息传递给相应的树。我想创建一个新类,可能来自CWnd,包含一个CTreeCtrl和一个C... 查看详情

mfc中的ctreectrl

CTreeCtrl::InsertItem("",1,2,hTreeItem);但在函数OnTvnSelchangedTreeGroup中pNMTreeView->itemNew.iImage得不到1????pNMTreeView->itemNew.iSelectedImage总是0在此借用image和selectedimage分别记录两个ID号到数据库里查询数据我没用图,只是用这两... 查看详情

ctreectrl控件

一、HTREEITEMHTREEITEM是树中节点的句柄,也就是一个DWORD值。在树中唯一标识一个节点。它的值对于程序员其实没有什么意义,只是可以通过它找到一个节点,从而取得节点的属性,如GetItemText(HTREEITEMhItem);或对节点进行某些操作... 查看详情

关于mfc中的tree控件

...前pt点对应的tree的节点,pFlags为节点属性值参考技术A用CTreeCtrl::HitTest(。。。)函数,可以在mousemove的消息里虚拟点击树,就可以得到你要的treeitem句柄了 参考技术BCTreeCtrl::GetSelectedItem();ReturnValueThehandleoftheselecteditem;otherwiseNU... 查看详情

CTreeCtrl 对象上的 TVN_SELCHANGED 问题

】CTreeCtrl对象上的TVN_SELCHANGED问题【英文标题】:ProblemwithTVN_SELCHANGEDonCTreeCtrlobject【发布时间】:2008-09-1807:20:54【问题描述】:我有使用CTreeCtrlMFC类创建的树控件对象。树控件需要支持重命名。当我左键单击树中的任何项目时,... 查看详情

CTreeCtrl 展开而不滚动

】CTreeCtrl展开而不滚动【英文标题】:CTreeCtrlExpandwithoutscrolling【发布时间】:2012-07-1322:43:08【问题描述】:在我的CTreeCtrl中,当我展开一个不可见的节点时,控件会自动重新定位树以使展开的节点可见。有什么办法可以防止这... 查看详情

MFC:我们怎样才能轻松地从 CTreeCtrl 切换到 CTreeView?

】MFC:我们怎样才能轻松地从CTreeCtrl切换到CTreeView?【英文标题】:MFC:HowcanweswitchfromCTreeCtrltoCTreeVieweasly?【发布时间】:2020-06-1011:00:51【问题描述】:我有一个图形MFC应用程序,它在历史上是使用CTreeCtrl开发的。我想添加一个CSp... 查看详情

如何在 MFC 中处理 CTreeCtrl 的状态更改事件

】如何在MFC中处理CTreeCtrl的状态更改事件【英文标题】:howdoIhandleastatechangeeventofCTreeCtrlinMFC【发布时间】:2012-03-0114:16:00【问题描述】:我是MFC编程的新手,今天我无法使用CTreeCtrl处理一些事件。更具体地说,我在CTreeCtrl的属性... 查看详情

将项目添加到 CTreectrl C++

】将项目添加到CTreectrlC++【英文标题】:AddingitemtoCTreectrlC++【发布时间】:2016-08-2511:27:15【问题描述】:我需要将项目从VB转换为C++。VB中有Tree控件。用于将项目添加到树控件“添加”方法(节点集合)已使用,其中包含一个名... 查看详情

CTreeCtrl 状态图像限制为 15 个图像

】CTreeCtrl状态图像限制为15个图像【英文标题】:CTreeCtrlstateimagelimitedto15images【发布时间】:2011-01-2118:30:28【问题描述】:我有一个CTreeCtrl,它使用“状态图像”在普通图标旁边获取第二个图标。从这里的文档http://msdn.microsoft.com... 查看详情

如何在 CTreeCtrl 的背景中添加水印或 png 或位图?

】如何在CTreeCtrl的背景中添加水印或png或位图?【英文标题】:HowcanIaddawatermarkorpngorbitmaptothebackgroundofaCTreeCtrl?【发布时间】:2010-08-0605:01:58【问题描述】:我想要一个列表控件(CTreeCtrl)的背景图像。这可能吗?我该怎么做?(这... 查看详情

mfc_2.7树控件的基本使用

树控件的基本使用1.添加控件设置变量绑定2.添加数据HTREEITEMRootNode1=m_TreeCtrl.InsertItem(L"北京");HTREEITEMChildNode11=m_TreeCtrl.InsertItem(L"昌平区",RootNode1);HTREEITEMChildNode12=m_TreeCtrl.InsertItem(L"朝阳区",RootNode1);HTRE 查看详情

我想显示最后在树控件 mfc 中检查的项目

】我想显示最后在树控件mfc中检查的项目【英文标题】:Iwanttodisplayitemlastlycheckedintreecontrolmfc【发布时间】:2017-02-0608:57:32【问题描述】:我试过了voidGetCheckedItems(constCTreeCtrl&tree,CArray<HTREEITEM>*checkedItems,HTREEITEMstartItem=NULL)i... 查看详情

MFC树视图控件:寻找一种万无一失的数据处理方式

】MFC树视图控件:寻找一种万无一失的数据处理方式【英文标题】:MFCtreeviewcontrol:lookingforafoolproofwaytodealwithdata【发布时间】:2012-07-1611:29:57【问题描述】:也许我在这里做错了什么。我正在使用一个树视图控件,我用数据填充... 查看详情