Objective Toolkit : Chapter 14 Tree Control & Tree View : Tree Control Data Structures
Tree Control Data Structures
The SECTreeCtrl and SECTreeView classes utilize the same data structures used by the CTreeCtrl class. The use of these data structures does not promote object-oriented programming. However, they are compatible with CTreeCtrl.
TV_ITEM
The TV_ITEM structure retrieves or specifies the attributes of a tree view item. It is defined as follows:
 
typedef struct _TV_ITEM { tvi
UINT mask; // what is valid in this structure
HTREEITEM hItem; // handle of this item
UINT state; // selected, expanded, drop
// highlighted,
// also state and overlay
// image indexes
// via obscure macros
// like INDEXTO…
// that map to bit fields
UINT stateMask; // what is valid in the “state”
// member
LPSTR pszText; // text or LPSTR_TEXTCALLBACK
int cchTextMax; // only used when modifying text
int iImage; // normal image index
// or I_IMAGECALLBACK
int iSelectedImage; // selected image #
// or I_IMAGECALLBACK
int cChildren; // # of children
// or I_CHILDRENCALLBACK
LPARAM lParam; // 32-bit user defined data
} TV_ITEM;
For a complete description of the members of this structure, refer to the MSDN documentation for TV_ITEM or TVITEM, which is identical to TV_ITEM, but follows current naming conventions.
NM_TREEVIEW
The NM_TREEVIEW structure is used within the tree control message notification mechanism. It contains information about a specific tree view notification message. A pointer to this data structure is included as a parameter accompanying the WM_NOTIFY message. It is defined as follows:
 
typedef struct tagNMTREEVIEW {
NMHDR hdr;
UINT action;
TVITEM itemOld;
TVITEM itemNew;
POINT ptDrag;
} NMTREEVIEW, FAR *LPNMTREEVIEW;
For a complete description of the members of this structure, refer to the MSDN documentation for NM_TREEVIEW or NMTREEVIEW, which is identical to NM_TREEVIEW, but follows current naming conventions.
TV_HITTESTINFO
This structure contains information for determining the location of a point relative to a tree view control. It is defined as follows:
 
typedef struct _TVHITTESTINFO {
POINT pt; // client coordinates of point to test
UINT flags; // info about the results of hit test
 
HTREEITEM hItem; // handle of item that occupies point
} TV_HITTESTINFO, FAR *LPTV_HITTESTINFO;
This structure is used as an optional parameter of the HitTest() method. For more information about the members of this structure, refer to the MSDN documentation for TV_HITTESTINFO or TVHITTESTINFO, which is identical to TV_HITTESTINFO, but follows current naming conventions. Refer to the documentation for SEC_TREECLASS::HitTest() in the Objective Toolkit Class Reference.