树型视的三个结构

转载 2007年09月16日 14:50:00

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.71TVITEMEX包含关于项添加的信息。
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 statestateMask成员有效。
TVIF_TEXT pszTextcchTextMax成员有效。
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

需求

  4.00版本或更高的Comctl32.dll。

 Windows NT/2000:需要Windows NT 3.51或更高版本。
  Windows 95/98:需要Windows 95或更高版本。
  Header:定义在commctrl.h。

 

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

TVINSERTSTRUCT   包含添加新项到树形视控件所使用的信息。这个结构被TVM_INSERTITEM消息使用。这个结构与TV_INSERTSTRUCT结构是一样的,但它已经按当前的命名习...
  • CNHK1225
  • CNHK1225
  • 2015年07月30日 11:15
  • 707

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

TVINSERTSTRUCT 包含添加新项到树形视图控件所使用的信息。这个结构被TVM_INSERTITEM消息使用。这个结构与TV_INSERTSTRUCT结构是一样的,但它已经按当前的命...
  • u010019491
  • u010019491
  • 2013年07月10日 21:33
  • 751

算法之树形结构

上班了,太忙了,标题一天一算法也去了,实在没那个时间和精力,但是算法和数据结构一定要学下去,这次说下C#实现的树形结构。树的遍历使用的先序遍历,两个类,一个是节点结构,一个是管理节点的树。采用链式存储...
  • u012614432
  • u012614432
  • 2015年11月24日 16:47
  • 1184

数据结构中常用树型结构简介

B树、B-树、B+树、B*树、红黑树rbtree 二叉排序树、trie树Double Array 字典查找树     B树        即二叉搜索树:        1.所有非叶子结点...
  • working_brain
  • working_brain
  • 2014年07月25日 17:23
  • 1408

各种树型结构模型分析与比较

假设我们正在设计一个带有评论的 Bug 记录网站(很像 http://stackoverflow.com/ ),网站的读者可以评论原文甚至可以相互之间回复,因此针对某一主题的讨论可能会延伸出很多分支。...
  • deniro_li
  • deniro_li
  • 2017年03月22日 10:20
  • 745

.net 双层repeater嵌套 实现树形结构

效果: (1)前台代码:                       OnItemDataBound="rptData_ItemDataBound">...
  • qq736150416
  • qq736150416
  • 2017年06月16日 13:56
  • 242

Hibernate 树状映射

目录: 概述环境代码示例测试结果 [一]、概述 在系统中,经常会用到无限级递归的树形结构,比如菜单、组织机构管理、多级分类等等,一般是在同一个表中定义父子关系实现这种树形结构,本文主要讲述如...
  • chilllaxxx
  • chilllaxxx
  • 2016年11月25日 15:13
  • 552

Objective-C之平铺导航、标签导航、树形结构导航

盼秋风,徐徐而来,吹尽炎热,捎来些许凉意。 望秋水,秋雨来临,散尽暑气,带来一夜好眠。 来说一下导航控制器。导航一般分三种:平铺导航、标签导航、树形结构导航。 平时我们大家经常见的使...
  • xiaoyaolala
  • xiaoyaolala
  • 2015年08月24日 13:40
  • 1040

mongodb数据结构-树

Model Tree Structures with Parent References(父关联)db.categories.insert( { _id: "MongoDB", parent: "Da...
  • qq258513813
  • qq258513813
  • 2016年04月06日 11:19
  • 474

iOS 树形结构菜单(参照以前大神写的博客)

iOS 树形结构菜单
  • wobushizhaoqian
  • wobushizhaoqian
  • 2016年09月24日 13:01
  • 3531
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:树型视的三个结构
举报原因:
原因补充:

(最多只允许输入30个字)