`

树型视的三个结构TVINSERTSTRUCT、TVITEM、NMTREEVIEW

    博客分类:
  • MFC
阅读更多

TVINSERTSTRUCT
包含添加新项到树形视控件所使用的信息。这个结构被TVM_INSERTITEM消息使用。这个结构与TV_INSERTSTRUCT结构是一样的,但它已经按当前的命名习惯重命名了。

typedef struct tagTVINSERTSTRUCT {
    HTREEITEM hParent;
    HTREEITEM hInsertAfter;
#if (_WIN32_IE >= 0x0400)
    union
    {
        TVITEMEX itemex;
        TVITEM item;
    } DUMMYUNIONNAME;
#else
    TVITEM item;
#endif
} TVINSERTSTRUCT, FAR *LPTVINSERTSTRUCT;
成员
hParent
父项的句柄。如果这个成员的值是TVI_ROOT或NULL,这项将被作为树形控件的根插入。
hInsertAfter
插入的新项之后的项的句柄。或是下列值之一: 值 意味
TVI_FIRST 在列表的开始插入项
TVI_LAST 在列表的最后插入项
TVI_ROOT 作为一个根项添加
TVI_SORT 以字母顺序插入项

itemex
版本4.71。TVITEMEX包含关于项添加的信息。
item
TVITEM包含关于项添加的信息。
需求
   Windows NT/2000:需要Windows NT 3.51或更高版本。
   Windows 95/98:需要Windows 95或更高版本。
   Header:定义在commctrl.h。

TVITEM
指定或接收树形视项的属性。这个结构与TV_ITEM结构一样,但它已经被当前命名协议重新命名了。新的应用程序应该使用这个结构。


typedef struct tagTVITEM{
    UINT      mask;
    HTREEITEM hItem;
    UINT      state;
    UINT      stateMask;
    LPTSTR    pszText;
    int       cchTextMax;
    int       iImage;
    int       iSelectedImage;
    int       cChildren;
    LPARAM    lParam;
} TVITEM, FAR *LPTVITEM;
成员
mask
指出其它的结构成员哪些包含有效数据的标记数组。当这个结构被TVM_GETITEM消息使用时,mask成员指出项的属性被取回。这个成员可以是下列值的一个或多个。 TVIF_CHILDREN cChildren成员是有效的。
TVIF_DI_SETITEM 树形视控件将保留支持信息并且不重新请求它。当处理TVN_GETDISPINF通知时,这个标记是有效的。
TVIF_HANDLE hItem成员有效。
TVIF_IMAGE iImage成员有效。
TVIF_PARAM lParam成员有效。
TVIF_SELECTEDIMAGE iSelectedImage成员有效。
TVIF_STATE state和stateMask成员有效。
TVIF_TEXT pszText和cchTextMax成员有效。

hItem
这个函数引用的项。
state
位标记和图像列表索引的设置,指出项的状态。当设置了一个项的状态,stateMask成员指出这个成员的位是有效的。当取加一个项的状态时,这个成员返回stateMask成员指出的位的当前状态。
这个成员的0至7位包含了项的状态标记。关于可能的项状态标记,参见Tree View Control Item States.

覆盖图像覆盖在项的图标图像之上。这个成员的8至11位指定了以1为基准的覆盖图像索引。如果这些位是0,这个项没有覆盖图像。要隔离这些位,使用TVIS_OVERLAYMASK掩码。要在这个成员中设置覆盖图像索引,使用INDEXTOOVERLAYMASK宏。图像列表的覆盖图像是被ImageList_SetOverlayImage函数设置的。

一个状态图像是仅次于指出应用程序定义的状态的项的图标显示的。通过发送TVM_SETIMAGELIST消息来指定一个状态图像列表。要设置一个项的状态图像,在TVITEM结构的stateMask成员中包含TVIS_STATEIMAGEMASK值。结构的state成员的12至15位指定状态图像列表中被绘制图像的索引。

要设置状态图像索引,使用INDEXTOSTATEIMAGEMASK。这个宏把一个索引适当的设置到12至15位上。要指出项没有状态图像,设置索引为0。这意味着在状态图像列表中的图像0不能被作为一个状态图像使用。要隔离state成员的位12至15,使用TVIS_STATEIMAGEMASK掩码。

stateMask
state成员的位是有效的。如果你取回了一个项的状态,设置stateMask成员的位来指出state成员中的这个位被返回。如果你设置了一个项的状态,设置stateMask成员的位来指出state成员的这个位是你想设置的。要设置或取回一个项的覆盖图像的索引,设置TVIS_OVERLAYMASK位。要设置和取回一个项的状态图像索引,设置TVIS_STATEIMAGEMASK位。
pszText
如果这个结构指定了项属性,那么这个成员是指向一个以空字符结束的字符串,包含有项的文本。如果这个成员是值LPSTR_TEXTCALLBACK,那么父窗口为保存名字负责。既然这样,当树形视控件需要显示、保存或编辑项文本时,向父窗口发送TVN_GETDISPINFO通过消息,当项文本改变时,发送TVN_SETDISPINFO通知消息。
如果结构是取回项的属性,这个成员是取回项文本缓冲的地址。

cchTextMax
pszText成员指定缓冲的大小,以字符为单位。如果这个结构被使用来设置项属性,这个成员被忽略。
iImage
当项是在非选择状态中时,是树形控件的图像列表的索引。
如果这个成员是值I_IMAGECALLBACK,父窗口为保存索引负责。既然这样,当树形视控件需要显示这个图像时,向父窗口发送TVN_GETDISPINFO通知消息来获得索引。

iSelectedImage
当项被选择时,是树形控件图像列表的索引。
如果这个成员是值I_IMAGECALLBACK,父窗口为保存索引负责。既然这样,当树形视控件需要显示这个图像时,向父窗口发送TVN_GETDISPINFO通知消息来获得索引。

cChildren
标记指出哪一个项有关联的子项。这个成员可以是下列值之一。 zero 这个项没有子项。
one 这个项有一个或更多的子项。
I_CHILDRENCALLBACK The parent window keeps track of whether the item has child items. In this case, when the tree view control needs to display the item, the control sends the parent a TVN_GETDISPINFO notification message to determine whether the item has child items.
If the tree view control has the TVS_HASBUTTONS style, it uses this member to determine whether to display the button indicating the presence of child items. You can use this member to force the control to display the button even though the item does not have any child items inserted. This allows you to display the button while minimizing the control's memory usage by inserting child items only when the item is visible or expanded.
 

lParam
与这项相关的32位值。
需要
   Windows NT/2000:需要Windows NT 3.51或更高版本。
   Windows 95/98:需要Windows 95或更高版本。
   Header:定义在commctrl.h。

NMTREEVIEW
包含关于树形视通知消息的信息。这个结构与NM_TREEVIEW结构一样,但它已经用当前的命名规则进行了重命名。

typedef struct tagNMTREEVIEW {
    NMHDR hdr;
    UINT action;
    TVITEM itemOld;
    TVITEM itemNew;
    POINT ptDrag;
} NMTREEVIEW, FAR *LPNMTREEVIEW;
成员
hdr
NMHDR结构,包含了关于这个通知消息的信息
action
通知指定的动作标记。
itemOld
包含关于旧项状态信息的TVITEM结构。通知消息没有使用它时,这个成员为0。
itemNew
包含关于新项状态信息的TVITEM结构。通知消息没有使用它时,这个成员为0。
ptDrag
包含引起通知消息发送的事件信息的POINT结构。
参见
WM_NOTIFY

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hdjfeng2009/archive/2009/06/09/4255070.aspx

分享到:
评论

相关推荐

    js做的树型结构javascript作的树型结构javascript作的树型结构

    js做的树型结构,应该是很好的,javascript作的树型结构javascript作的树型结构javascript作的树型结构javascript作的树型结构javascript作的树型结构javascript作的树型结构javascript作的树型结构javascript作的树型...

    树型结构算法

    树型结构算法树型结构算法树型结构算法树型结构算法

    网络拓扑结构大全和图片星型总线型环型树型分布式网状拓扑结构.doc

    网络拓扑结构大全和图片星型总线型环型树型分布式网状拓扑结构.doc

    使用冗余数据设计树型关系的数据结构.pdf

    树型数据结构的设计需要考虑不同的范式,如第一范式(1NF)、第二范式(2NF)、第三范式(3NF)等,并在满足业务需求和性能优化之间进行平衡。 5. 树型数据结构的应用 树型数据结构在文件系统、XML文档、JSON对象...

    基于XML的树型结构编码及结构相似性匹配方法

    分享给大家:基于XML的树型结构编码及结构相似性匹配方法

    教你如何用java开发树型结构

    在Java开发中,树型结构是一种常见的数据组织方式,它模拟了自然界中的树状结构,由节点(Node)和边(Edge)组成,每个节点可以有零个或多个子节点。这种结构在很多场景下都非常有用,比如文件系统、组织架构、...

    易语言模块树型框三级填充.rar

    易语言模块树型框三级填充.rar 易语言模块树型框三级填充.rar 易语言模块树型框三级填充.rar 易语言模块树型框三级填充.rar 易语言模块树型框三级填充.rar 易语言模块树型框三级填充.rar

    网络拓扑结构大全和图片星型总线型环型树型分布式网状拓扑结构.pdf

    树型拓扑是星型拓扑的扩展,类似于多层的星型结构,其中有一个或多个主节点作为根,其他节点分支出来。它适用于层次化的组织结构,便于管理和权限控制,但故障隔离较为困难,根节点的故障将影响所有子节点。 5. **...

    erchashu.rar_二叉树_二叉树遍历_完全遍历_树型结构_树结构

    树型结构是一类重要的非线性数据结构,而二叉树是最为重要,最为常用的类型。树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可以用树来形象表示。树在计算机领域中也得到广泛应用,如在编译程序...

    java递归树型结构通用数据库

    在Java递归树型结构通用数据库中,使用递归树型结构来存储部门信息,部门之间存在父子关系,每个部门都有一个唯一的ID,父部门的ID作为子部门的Parent ID,通过这种方式实现树型结构的部门管理。 2. 部门管理接口...

    js动态树型结构 树型菜单

    在这个场景下,"js动态树型结构 树型菜单"指的是使用JavaScript实现的可以动态加载、展示和操作的树状菜单系统。 树型结构是一种数据表示形式,由节点和边组成,每个节点可以有零个或多个子节点。在JavaScript中,...

    winform树型结构

    树型结构(TreeView)是WinForm中常见的一种控件,它用于显示层次化的数据,通常表现为节点和子节点的形式,类似于计算机文件系统的目录结构。对于初学者来说,理解和掌握如何在WinForm中使用树型控件是非常重要的...

    生成JSON树型表结构

    当我们需要构建一个树形展示的数据结构时,JSON树型表结构就显得尤为重要。EXT框架,作为一个强大的前端组件库,提供了丰富的UI控件,其中包括树形组件(EXT树),它能够根据JSON数据生成交互式的树状结构。 EXT树...

    树型结构的一个例子

    在计算机科学中,树型结构是由节点(或称为元素)组成的数据结构,每个节点可以有零个或多个子节点。根节点是树的起点,没有父节点,而叶节点没有子节点。通过递归,我们可以遍历树的所有节点,这在处理层次结构数据...

    delphi 树型控件自动根据数据集生成树型结构

    本文将详细讲解如何在 Delphi7 中使用树型控件,并自动根据数据集生成树型结构。 首先,理解 TTreeView 控件的基本操作。TTreeView 提供了一个可视化的组件,用于展示具有父节点和子节点的关系的数据。每个节点表示...

    在 Windows 或者 Linux 下设计一个二级(或者树型)结构文件系统

    在 Windows 或者 Linux 下设计一个二级(或者树型)结构文件系统,现虚拟文件系统的一般思路是调用系统的文件创建(如 c 中的 fopen 函数的w 方式即可)一个新文件,将此文件作为虚拟磁盘,在完成本设计要求的内容时...

    简单js树型结构好用

    在网页开发中,树型结构是一种常见的数据展示...在这个过程中,JavaScript与服务器端语言紧密协作,实现了动态加载和展示树型结构数据的功能。通过不断优化和扩展,可以构建出功能强大、用户体验良好的树型结构应用。

    一种基于Ajax的动态树型结构的设计与实现.pdf

    该方案通过利用Ajax技术、Yahoo用户界面库以及其他相关技术,实现了一个结构清晰、扩展性强且用户体验优秀的动态树型结构。这种方案特别适用于需要频繁更新数据的应用场景,如在线文件管理系统、企业资源规划系统等...

    C#编写的一个带树型结构的下拉框控件

    在传统的下拉框(ComboBox)中,用户只能看到一个单一的列表,而“带树型结构的下拉框控件”则允许用户在展开控件时看到一个层次结构,这特别适用于表示具有分层关系的数据,如组织结构、文件系统或者分类目录。...

    树型结构(javascript+css+html)

    下面将详细阐述如何使用这三种技术来实现树型结构。 一、HTML基础 HTML(HyperText Markup Language)主要用于构建网页的基本结构。在创建树型结构时,我们通常使用`<ul>`和`<li>`元素来代表树的节点和子节点。例如...

Global site tag (gtag.js) - Google Analytics