These present some additional considerations and complications. Initially on the top level (level 0) items will be displayed. The user can click on the expand/collapse indicator at the left edge of the item to display or hide the lower level items. (See XTR_SHOWBUTTONS.) Sorting the column only sorts the top level (level 0) items. Dependents (lower level items) move with their respective parents, but are not themselves sorted within each group. (If the lower level items are visible at the time of the sort, this may give the impression that the sort did not work.) When adding items to the tree control, lower level items must immediately follow their parents. (There is currently no way to insert a lower level item, chronologically out of sequence with its parent.) Since you can only have one set of column definitions, when using multiple levels, typically the higher levels may have blank columns, and you may need to interpret the contents of the columns differently. In file mode, the level flag (as defined by the @ code in coldef ) is returned with the selection, allowing you to interpret the result appropriately. In array mode, you get back the selected array index(es) and can refer to the original array data to determine the level of the selected item(s). Note that the array index returned will be relative to the array you pass, and is not affected by sorting.