Поделиться через


Родительские и дочерние элементы древовидного элемента управления

Любой элемент в элементе управления деревом (CTreeCtrl) может содержать список дочерних элементов, которые называются дочерними элементами, связанными с ним. Элемент с одним или несколькими дочерними элементами называется родительским элементом. Дочерний элемент отображается под родительским элементом и отступен, чтобы указать, что он подчинен родительскому элементу. Элемент, не имеющий родительского элемента, находится в верхней части иерархии и называется корневым элементом.

В любое время состояние списка дочерних элементов родительского элемента может быть развернуто или свернуто. При развертывании состояния дочерние элементы отображаются под родительским элементом. При сворачивании дочерние элементы не отображаются. Список автоматически переключается между развернутыми и свернутыми состояниями, когда пользователь дважды щелкает родительский элемент или, если родительский элемент имеет стиль TVS_HASBUTTONS , когда пользователь нажимает кнопку, связанную с родительским элементом. Приложение может развернуть или свернуть дочерние элементы с помощью функции "Развернуть ".

Элемент управления "Дерево" добавляется путем вызова функции-члена InsertItem . Эта функция возвращает дескриптор типа HTREEITEM , который однозначно идентифицирует элемент. При добавлении элемента необходимо указать дескриптор родительского элемента нового элемента. Если указать значение NULL или значение TVI_ROOT вместо родительского элемента в структуре TVINSERTSTRUCT или параметре hParent , элемент добавляется в качестве корневого элемента.

Элемент управления деревом отправляет сообщение TVN_ITEMEXPANDING уведомления, когда список дочерних элементов родительского элемента будет развернут или свернут. Уведомление дает возможность предотвратить изменение или задать любые атрибуты родительского элемента, зависящие от состояния списка дочерних элементов. После изменения состояния списка элемент управления деревом отправляет сообщение TVN_ITEMEXPANDED уведомления.

При развертывании списка дочерних элементов он отступит относительно родительского элемента. Можно задать количество отступов с помощью функции-члена SetIndent или получить текущую сумму с помощью функции-члена GetIndent.

См. также

Использование CTreeCtrl
Controls