树控件父项和子项

树控件 (CTreeCtrl) 中的任何项都具有与之关联的子项列表。 具有一个或多个子项的项称为“父项”。 子项显示在其父项下,可能指示其是父级的下属。 没有父级的项位于层次结构顶部,称为“根项”。

在任何给定时间,子项的父项列表的状态都可以为展开或折叠。 在状态为展开时,子项将显示在父项下。 当状态为折叠时,子项不会显示。 当用户双击父项,或如果父项具有 TVS_HASBUTTONS 样式,用户单击与父项关联的按钮时,列表将自动在展开和折叠状态之间切换。 应用程序可以通过使用 Expand 成员函数展开或折叠子项。

你通过调用 InsertItem 成员函数向树控件添加项。 此函数将返回 HTREEITEM 类型的句柄,它唯一标识项。 添加项时,您必须为新项的父项指定句柄。 如果在 TVINSERTSTRUCT 结构或 hParent 参数中指定 NULL 或 TVI_ROOT 值而不是父项句柄,则项将作为根项添加。

当要展开或折叠父项的子项列表时,树控件将发送 TVN_ITEMEXPANDING 通知消息。 此通知为您提供了阻止更改或设置依赖于子项列表状态的父项的任何特性。 在更改列表状态后,树控件将发送 TVN_ITEMEXPANDED 通知消息。

子项列表展开后,则将相对于父项缩进。 可以使用 SetIndent 成员函数设置缩进量,或使用 GetIndent 成员函数检索当前量。

另请参阅

使用 CTreeCtrl
控件