CTreeCtrl Class
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at CTreeCtrl Class.
Provides the functionality of the Windows common tree view control.
Syntax
class CTreeCtrl : public CWnd
Members
Public Constructors
Name | Description |
---|---|
CTreeCtrl::CTreeCtrl | Constructs a CTreeCtrl object. |
Public Methods
Name | Description |
---|---|
CTreeCtrl::Create | Creates a tree view control and attaches it to a CTreeCtrl object. |
CTreeCtrl::CreateDragImage | Creates a dragging bitmap for the specified tree view item. |
CTreeCtrl::CreateEx | Creates a tree control with the specified Windows extended styles and attaches it to a CTreeCtrl object. |
CTreeCtrl::DeleteAllItems | Deletes all items in a tree view control. |
CTreeCtrl::DeleteItem | Deletes a new item in a tree view control. |
CTreeCtrl::EditLabel | Edits a specified tree view item in-place. |
CTreeCtrl::EndEditLabelNow | Cancels the edit operation on the label of a tree-view item in the current tree-view control. |
CTreeCtrl::EnsureVisible | Ensures that a tree view item is visible in its tree view control. |
CTreeCtrl::Expand | Expands, or collapses, the child items of the specified tree view item. |
CTreeCtrl::GetBkColor | Retrieves the current background color of the control. |
CTreeCtrl::GetCheck | Retrieves the check state of a tree control item. |
CTreeCtrl::GetChildItem | Retrieves the child of a specified tree view item. |
CTreeCtrl::GetCount | Retrieves the number of tree items associated with a tree view control. |
CTreeCtrl::GetDropHilightItem | Retrieves the target of a drag-and-drop operation. |
CTreeCtrl::GetEditControl | Retrieves the handle of the edit control used to edit the specified tree view item. |
CTreeCtrl::GetExtendedStyle | Retrieves the extended styles that the current tree-view control is using. |
CTreeCtrl::GetFirstVisibleItem | Retrieves the first visible item of the specified tree view item. |
CTreeCtrl::GetImageList | Retrieves the handle of the image list associated with a tree view control. |
CTreeCtrl::GetIndent | Retrieves the offset (in pixels) of a tree view item from its parent. |
CTreeCtrl::GetInsertMarkColor | Retrieves the color used to draw the insertion mark for the tree view. |
CTreeCtrl::GetItem | Retrieves the attributes of a specified tree view item. |
CTreeCtrl::GetItemData | Returns the 32-bit application-specific value associated with an item. |
CTreeCtrl::GetItemExpandedImageIndex | Retrieves the index of the image to display when the specified item of the current tree-view control is in the expanded state. |
CTreeCtrl::GetItemHeight | Retrieves the current height of the tree view items. |
CTreeCtrl::GetItemImage | Retrieves the images associated with an item. |
CTreeCtrl::GetItemPartRect | Retrieves the bounding rectangle for a specified part of a specified item in the current tree-view control. |
CTreeCtrl::GetItemRect | Retrieves the bounding rectangle of a tree view item. |
CTreeCtrl::GetItemState | Returns the state of an item. |
CTreeCtrl::GetItemStateEx | Retrieves the extended state of the specified item in the current tree-view control. |
CTreeCtrl::GetItemText | Returns the text of an item. |
CTreeCtrl::GetLastVisibleItem | Retrieves the last expanded item in the current tree-view control. |
CTreeCtrl::GetLineColor | Retrieves the current line color for the tree view control. |
CTreeCtrl::GetNextItem | Retrieves the next tree view item that matches a specified relationship. |
CTreeCtrl::GetNextSiblingItem | Retrieves the next sibling of the specified tree view item. |
CTreeCtrl::GetNextVisibleItem | Retrieves the next visible item of the specified tree view item. |
CTreeCtrl::GetParentItem | Retrieves the parent of the specified tree view item. |
CTreeCtrl::GetPrevSiblingItem | Retrieves the previous sibling of the specified tree view item. |
CTreeCtrl::GetPrevVisibleItem | Retrieves the previous visible item of the specified tree view item. |
CTreeCtrl::GetRootItem | Retrieves the root of the specified tree view item. |
CTreeCtrl::GetScrollTime | Retrieves the maximum scroll time for the tree view control. |
CTreeCtrl::GetSelectedCount | Retrieves the number of selected items in the current tree-view control. |
CTreeCtrl::GetSelectedItem | Retrieves the currently selected tree view item. |
CTreeCtrl::GetTextColor | Retrieves the current text color of the control. |
CTreeCtrl::GetToolTips | Retrieves the handle to the child ToolTip control used by a tree view control. |
CTreeCtrl::GetVisibleCount | Retrieves the number of visible tree items associated with a tree view control. |
CTreeCtrl::HitTest | Returns the current position of the cursor related to the CTreeCtrl object. |
CTreeCtrl::InsertItem | Inserts a new item in a tree view control. |
CTreeCtrl::ItemHasChildren | Returns nonzero if the specified item has child items. |
CTreeCtrl::MapAccIdToItem | Maps the specified accessibility identifier to the handle to a tree-view item in the current tree-view control. |
CTreeCtrl::MapItemToAccID | Maps the specified handle to a tree-view item in the current tree-view control to an accessibility identifier. |
CTreeCtrl::Select | Selects, scrolls into view, or redraws a specified tree view item. |
CTreeCtrl::SelectDropTarget | Redraws the tree item as the target of a drag-and-drop operation. |
CTreeCtrl::SelectItem | Selects a specified tree view item. |
CTreeCtrl::SelectSetFirstVisible | Selects a specified tree view item as the first visible item. |
CTreeCtrl::SetAutoscrollInfo | Sets the autoscroll rate of the current tree-view control. |
CTreeCtrl::SetBkColor | Sets the background color of the control. |
CTreeCtrl::SetCheck | Sets the check state of a tree control item. |
CTreeCtrl::SetExtendedStyle | Sets the extended styles for the current tree-view control. |
CTreeCtrl::SetImageList | Sets the handle of the image list associated with a tree view control. |
CTreeCtrl::SetIndent | Sets the offset (in pixels) of a tree view item from its parent. |
CTreeCtrl::SetInsertMark | Sets the insertion mark in a tree view control. |
CTreeCtrl::SetInsertMarkColor | Sets the color used to draw the insertion mark for the tree view. |
CTreeCtrl::SetItem | Sets the attributes of a specified tree view item. |
CTreeCtrl::SetItemData | Sets the 32-bit application-specific value associated with an item. |
CTreeCtrl::SetItemExpandedImageIndex | Sets the index of the image to display when the specified item of the current tree-view control is in the expanded state. |
CTreeCtrl::SetItemHeight | Sets the height of the tree view items. |
CTreeCtrl::SetItemImage | Associates images with an item. |
CTreeCtrl::SetItemState | Sets the state of an item. |
CTreeCtrl::SetItemStateEx | Sets the extended state of the specified item in the current tree-view control. |
CTreeCtrl::SetItemText | Sets the text of an item. |
CTreeCtrl::SetLineColor | Sets the current line color for the tree view control. |
CTreeCtrl::SetScrollTime | Sets the maximum scroll time for the tree view control. |
CTreeCtrl::SetTextColor | Sets the text color of the control. |
CTreeCtrl::SetToolTips | Sets a tree view control's child ToolTip control. |
CTreeCtrl::ShowInfoTip | Displays the infotip for the specified item in the current tree-view control. |
CTreeCtrl::SortChildren | Sorts the children of a given parent item. |
CTreeCtrl::SortChildrenCB | Sorts the children of a given parent item using an application-defined sort function. |
Remarks
A "tree view control" is a window that displays a hierarchical list of items, such as the headings in a document, the entries in an index, or the files and directories on a disk. Each item consists of a label and an optional bitmapped image, and each item can have a list of subitems associated with it. By clicking an item, the user can expand and collapse the associated list of subitems.
This control (and therefore the CTreeCtrl
class) is available only to programs running under Windows 98 and Windows NT version 4 and later.
For more information on using CTreeCtrl
, see:
Tree View Control Reference in the Windows SDK.
Knowledge Base article Q222905: HOWTO: Display a Context Menu for CTreeCtrl
Inheritance Hierarchy
CTreeCtrl
Requirements
Header: afxcmn.h
CTreeCtrl::Create
If you specify the tree control in a dialog box template, or if you are using CTreeView, your tree control is created automatically when the dialog box or view is created.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parameters
dwStyle
Specifies the tree view control's style. Apply window styles, described in CreateWindow, and any combination of tree view control styles as described in the Windows SDK.
rect
Specifies the tree view control's size and position. It can be either a CRect object or a RECT structure.
pParentWnd
Specifies the tree view control's parent window, usually a CDialog
. It must not be NULL.
nID
Specifies the tree view control's ID.
Return Value
Nonzero if initialization was successful; otherwise 0.
Remarks
If you want to create the tree control as a child window of some other window, use the Create member function. If you create the tree control using Create, you must pass it WS_VISIBLE, in addition to other tree view styles.
You construct a CTreeCtrl
in two steps. First call the constructor, then call Create, which creates the tree view control and attaches it to the CTreeCtrl
object.
To create a tree control with extended window styles, call CreateEx instead of Create.
Example
// Assuming your window has a CTreeCtrl member named m_TreeCtrl,
// you can create the tree control window with a child ID of ID_MYTREE
// using a call like this:
m_TreeCtrl.Create(WS_VISIBLE | WS_TABSTOP | WS_CHILD | WS_BORDER
| TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES
| TVS_DISABLEDRAGDROP | TVS_NOTOOLTIPS | TVS_EDITLABELS,
CRect(10, 10, 300, 100), this, ID_MYTREE);
// The control will have the appropiate window styles, and the tree
// control styles specified are those most commonly used.
CTreeCtrl::CreateEx
Call this function to create a control (a child window) and associate it with the CTreeCtrl
object.
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parameters
dwExStyle
Specifies the extended style of the control being created. For a list of extended Windows styles, see the dwExStyle
parameter for CreateWindowEx in the Windows SDK.
dwStyle
Specifies the tree view control's style. Apply window styles, described in CreateWindow, and any combination of tree view control styles as described in the Windows SDK.
rect
A reference to a RECT structure describing the size and position of the window to be created, in client coordinates of pParentWnd
.
pParentWnd
A pointer to the window that is the control's parent.
nID
The control's child-window ID.
Return Value
Nonzero if successful otherwise 0.
Remarks
Use CreateEx
instead of Create to apply extended Windows styles, specified by the Windows extended style preface WS_EX_.
CTreeCtrl::CreateDragImage
Call this function to create a dragging bitmap for the given item in a tree view control, create an image list for the bitmap, and add the bitmap to the image list.
CImageList* CreateDragImage(HTREEITEM hItem);
Parameters
hItem
Handle of the tree item to be dragged.
Return Value
Pointer to the image list to which the dragging bitmap was added, if successful; otherwise NULL.
Remarks
An application uses the image-list functions to display the image when the item is being dragged.
The CImageList
object is permanent, and you must delete it when finished. For example:
HTREEITEM hItem =m_TreeCtrl.GetSelectedItem();
CImageList* pImageList = m_TreeCtrl.CreateDragImage(hItem);
// Do something with the image list.
delete pImageList;
CTreeCtrl::CTreeCtrl
Constructs a CTreeCtrl
object.
CTreeCtrl();
CTreeCtrl::DeleteAllItems
Call this function to delete all items from the tree view control.
BOOL DeleteAllItems();
Return Value
Nonzero if successful; otherwise 0.
Example
// The underlying Windows API always returns TRUE
VERIFY(m_TreeCtrl.DeleteAllItems());
CTreeCtrl::DeleteItem
Call this function to delete an item from the tree view control.
BOOL DeleteItem(HTREEITEM hItem);
Parameters
hItem
Handle of the tree item to be deleted. If hitem has the TVI_ROOT value, all items are deleted from the tree view control.
Return Value
Nonzero if successful; otherwise 0.
Example
// Look at all of the root-level items
HTREEITEM hCurrent = m_TreeCtrl.GetChildItem(TVI_ROOT);
while (hCurrent != NULL)
{
// Get the text for the item. Notice we use TVIF_TEXT because
// we want to retrieve only the text, but also specify TVIF_HANDLE
// because we're getting the item by its handle.
TVITEM item;
TCHAR szText[1024];
item.hItem = hCurrent;
item.mask = TVIF_TEXT | TVIF_HANDLE;
item.pszText = szText;
item.cchTextMax = 1024;
BOOL bWorked = m_TreeCtrl.GetItem(&item);
// Try to get the next item
hCurrent = m_TreeCtrl.GetNextItem(hCurrent, TVGN_NEXT);
// If we successfuly retrieved an item, and the item's text
// contains a lowercase letter 'e', delete the item.
if (bWorked && _tcschr(item.pszText, 'e'))
m_TreeCtrl.DeleteItem(item.hItem);
}
CTreeCtrl::EditLabel
Call this function to begin in-place editing of the specified item's text.
CEdit* EditLabel(HTREEITEM hItem);
Parameters
hItem
Handle of the tree item to be edited.
Return Value
If successful, a pointer to the CEdit
object that is used to edit the item text; otherwise NULL.
Remarks
The editing is accomplished by replacing the text of the item with a single-line edit control containing the text.
Example
// Make sure the focus is set to the tree control.
m_TreeCtrl.SetFocus();
// Show the edit control on the label of the selected item.
// The tree control must have the TVS_EDITLABELS style set.
HTREEITEM hSel = m_TreeCtrl.GetSelectedItem();
CEdit* pmyEdit = m_TreeCtrl.EditLabel(hSel);
ASSERT(pmyEdit != NULL);
CTreeCtrl::EndEditLabelNow
Concludes the edit operation on the label of a tree-view item in the current tree-view control.
BOOL EndEditLabelNow(BOOL fCancelWithoutSave);
Parameters
Parameter | Description |
---|---|
[in] fCancelWithoutSave |
true to discard changes to the tree-view item before concluding the edit operation, or false to save changes to the tree-view item before concluding the operation. |
Return Value
true
if this method is successful; otherwise, false
.
Remarks
This method sends the TVM_ENDEDITLABELNOW message, which is described in the Windows SDK.
CTreeCtrl::EnsureVisible
Call this function to ensure that a tree view item is visible.
BOOL EnsureVisible(HTREEITEM hItem);
Parameters
hItem
Handle of the tree item being made visible.
Return Value
Returns TRUE if the system scrolled the items in the tree-view control to ensure that the specified item is visible. Otherwise, the return value is FALSE.
Remarks
If necessary, the function expands the parent item or scrolls the tree view control so that the item is visible.
Example
HTREEITEM hItem = m_TreeCtrl.GetSelectedItem();
// hmyItem is the item that I want to ensure is visible.
HTREEITEM hmyItem = m_TreeCtrl.GetChildItem(hItem);
// Expand the parent, if possible.
HTREEITEM hParent = m_TreeCtrl.GetParentItem(hmyItem);
if (hParent != NULL)
m_TreeCtrl.Expand(hParent, TVE_EXPAND);
// Ensure the item is visible.
m_TreeCtrl.EnsureVisible(hmyItem);
CTreeCtrl::Expand
Call this function to expand or collapse the list of child items, if any, associated with the given parent item.
BOOL Expand(
HTREEITEM hItem,
UINT nCode);
Parameters
hItem
Handle of the tree item being expanded.
nCode
A flag indicating the type of action to be taken. This flag can have one of the following values:
TVE_COLLAPSE
Collapses the list.TVE_COLLAPSERESET
Collapses the list and removes the child items. The TVIS_EXPANDEDONCE state flag is reset. This flag must be used with theTVE_COLLAPSE
flag.TVE_EXPAND
Expands the list.TVE_TOGGLE
Collapses the list if it is currently expanded or expands it if it is currently collapsed.
Return Value
Nonzero if successful; otherwise 0.
Example
See the example for CTreeCtrl::EnsureVisible.
CTreeCtrl::GetBkColor
This member function implements the behavior of the Win32 message TVM_GETBKCOLOR, as described in the Windows SDK.
COLORREF GetBkColor() const;
Return Value
A COLORREF value that represents the current window background color for the control. If this value is -1, the control is using the system window color. In this case, you can use ::GetSysColor(COLOR_WINDOW)
to get the current system color that the control is using.
Example
See the example for CTreeCtrl::SetTextColor.
CTreeCtrl::GetCheck
Call this member function to retrieve an item's check state.
BOOL GetCheck(HTREEITEM hItem) const;
Parameters
hItem
The HTREEITEM about which to receive the state information.
Return Value
Nonzero if the tree control item is checked; otherwise 0.
Example
See the example for CTreeCtrl::SetCheck.
CTreeCtrl::GetChildItem
Call this function to retrieve the tree view item that is the child of the item specified by hItem
.
HTREEITEM GetChildItem(HTREEITEM hItem) const;
Parameters
hItem
Handle of a tree item.
Return Value
The handle of the child item if successful; otherwise NULL.
Example
HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();
// Delete all of the children of hmyItem.
if (m_TreeCtrl.ItemHasChildren(hmyItem))
{
HTREEITEM hNextItem;
HTREEITEM hChildItem = m_TreeCtrl.GetChildItem(hmyItem);
while (hChildItem != NULL)
{
hNextItem = m_TreeCtrl.GetNextItem(hChildItem, TVGN_NEXT);
m_TreeCtrl.DeleteItem(hChildItem);
hChildItem = hNextItem;
}
}
CTreeCtrl::GetCount
Call this function to retrieve a count of the items in a tree view control.
UINT GetCount() const;
Return Value
The number of items in the tree view control.
Example
// Delete all of the items from the tree control.
m_TreeCtrl.DeleteAllItems();
ASSERT(m_TreeCtrl.GetCount() == 0);
CTreeCtrl::GetDropHilightItem
Call this function to retrieve the item that is the target of a drag-and-drop operation.
HTREEITEM GetDropHilightItem() const;
Return Value
The handle of the item dropped if successful; otherwise NULL.
Example
// Set the item at the point myPoint as the drop target.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);
if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
m_TreeCtrl.SelectDropTarget(hItem);
ASSERT(m_TreeCtrl.GetDropHilightItem() == hItem);
}
CTreeCtrl::GetEditControl
Call this function to retrieve the handle of the edit control being used to edit a tree view item's text.
CEdit* GetEditControl() const;
Return Value
A pointer to the edit control used to edit the item text, if successful; otherwise NULL.
Example
// The string replacing the text in the edit control.
LPCTSTR lpszmyString = _T("New text!");
// Replace the text in the label edit control, if possible.
CEdit* pEdit = m_TreeCtrl.GetEditControl();
if (pEdit != NULL)
{
pEdit->SetWindowText(lpszmyString);
}
CTreeCtrl::GetExtendedStyle
Retrieves the extended styles that the current tree-view control is using.
DWORD GetExtendedStyle() const;
Return Value
A value that contains a bitwise combination (OR) of the current tree-view control's extended styles. For more information, see Tree-View Control Extended Styles.
Remarks
This method sends the TVM_GETEXTENDEDSTYLE message, which is described in the Windows SDK.
CTreeCtrl::GetFirstVisibleItem
Call this function to retrieve the first visible item of the tree view control.
HTREEITEM GetFirstVisibleItem() const;
Return Value
The handle of the first visible item; otherwise NULL.
Example
See the example for CTreeCtrl::SetCheck.
CTreeCtrl::GetImageList
Call this function to retrieve the handle of the normal or state image list associated with the tree view control.
CImageList* GetImageList(UINT nImageList) const;
Parameters
nImageList
Type of image list to retrieve. The image list can be one of the following values:
TVSIL_NORMAL
Retrieves the normal image list, which contains the selected and nonselected images for the tree view item.TVSIL_STATE
Retrieves the state image list, which contains the images for tree view items that are in a user-defined state.
Return Value
Pointer to the control's image list if successful; otherwise NULL.
Remarks
Each item in a tree view control can have a pair of bitmapped images associated with it. One image is displayed when the item is selected, and the other is displayed when the item is not selected. For example, an item might display an open folder when it is selected and a closed folder when it is not selected.
For more information on image lists, see the CImageList class.
Example
ASSERT(m_TreeCtrl.GetImageList(TVSIL_NORMAL) == NULL);
m_TreeCtrl.SetImageList(&m_TreeImages, TVSIL_NORMAL);
ASSERT(m_TreeCtrl.GetImageList(TVSIL_NORMAL) == &m_TreeImages);
CTreeCtrl::GetIndent
Call this function to retrieve the amount, in pixels, that child items are indented relative to their parent items.
UINT GetIndent() const;
Return Value
The amount of indentation measured in pixels.
Example
// Double the indent.
UINT uIndent = m_TreeCtrl.GetIndent();
m_TreeCtrl.SetIndent(2 * uIndent);
CTreeCtrl::GetInsertMarkColor
This member function implements the behavior of the Win32 message TVM_GETINSERTMARKCOLOR, as described in the Windows SDK.
COLORREF GetInsertMarkColor() const;
Return Value
A COLORREF value that contains the current insertion mark color.
Example
// Use the highliight color for the insert mark color.
COLORREF crColor = ::GetSysColor(COLOR_HIGHLIGHT);
m_TreeCtrl.SetInsertMarkColor(crColor);
ASSERT(m_TreeCtrl.GetInsertMarkColor() == crColor);
CTreeCtrl::GetItem
Call this function to retrieve the attributes of the specified tree view item.
BOOL GetItem(TVITEM* pItem) const;
Parameters
pItem
A pointer to a TVITEM structure, as described in the Windows SDK.
Return Value
Nonzero if successful; otherwise 0.
Example
See the example for CTreeCtrl::DeleteItem.
CTreeCtrl::GetItemData
Call this function to retrieve the 32-bit application-specific value associated with the specified item.
DWORD_PTR GetItemData(HTREEITEM hItem) const;
Parameters
hItem
Handle of the item whose data is to be retrieved.
Return Value
A 32-bit application-specific value associated with the item specified by hItem
.
Example
HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();
// Delete all of the children of hmyItem whose item data is
// not equal to zero.
if (m_TreeCtrl.ItemHasChildren(hmyItem))
{
HTREEITEM hNextItem;
HTREEITEM hChildItem = m_TreeCtrl.GetChildItem(hmyItem);
while (hChildItem != NULL)
{
hNextItem = m_TreeCtrl.GetNextItem(hChildItem, TVGN_NEXT);
if (m_TreeCtrl.GetItemData(hChildItem) != 0)
{
m_TreeCtrl.DeleteItem(hChildItem);
}
hChildItem = hNextItem;
}
}
CTreeCtrl::GetItemExpandedImageIndex
Retrieves the index of the image to display when the specified item of the current tree-view control is in the expanded state.
int GetItemExpandedImageIndex(HTREEITEM hItem)const;
Parameters
Parameter | Description |
---|---|
[in] hItem |
Handle to a tree-view control item. |
Return Value
The index of the image to display when the specified item is in the expanded state.
Remarks
This method sends the TVM_GETITEM message, which is described in the Windows SDK. That message returns the TVITEMEX structure that describes the tree-view control item, and then this method retrieves the iExpandedImage
member from that structure.
CTreeCtrl::GetItemHeight
This member function implements the behavior of the Win32 message TVM_GETITEMHEIGHT, as described in the Windows SDK.
SHORT GetItemHeight() const;
Return Value
The height of the item, in pixels.
Example
// Double the height of the items.
SHORT sHeight = m_TreeCtrl.GetItemHeight();
m_TreeCtrl.SetItemHeight(2 * sHeight);
CTreeCtrl::GetItemImage
Each item in a tree view control can have a pair of bitmapped images associated with it.
BOOL GetItemImage(
HTREEITEM hItem,
int& nImage,
int& nSelectedImage) const;
Parameters
hItem
The handle of the item whose image is to be retrieved.
nImage
An integer that receives the index of the item's image within the tree view control's image list.
nSelectedImage
An integer that receives the index of the item's selected image within the tree view control's image list.
Return Value
Nonzero if successful; otherwise 0.
Remarks
The images appear on the left side of an item's label. One image is displayed when the item is selected, and the other is displayed when the item is not selected. For example, an item might display an open folder when it is selected and a closed folder when it is not selected.
Call this function to retrieve the index of the item's image and its selected image within the tree view control's image list.
Example
HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();
// If the selected image is the same as the nonselected image
// then make the selected image one more than the nonselected image.
if (m_TreeCtrl.ItemHasChildren(hmyItem))
{
HTREEITEM hItem = m_TreeCtrl.GetChildItem(hmyItem);
int nImage, nSelectedImage;
while (hItem != NULL)
{
m_TreeCtrl.GetItemImage(hItem, nImage, nSelectedImage);
if (nImage == nSelectedImage)
{
m_TreeCtrl.SetItemImage(hItem, nImage, nImage + 1);
}
hItem = m_TreeCtrl.GetNextSiblingItem(hItem);
}
}
CTreeCtrl::GetItemPartRect
Retrieves the bounding rectangle for a specified part of a specified item in the current tree-view control.
BOOL GetItemPartRect(
HTREEITEM hItem,
int nPart,
LPRECT lpRect)const;
Parameters
Parameter | Description |
---|---|
[in] hItem |
Handle to a tree-view control item. |
[in] nPart |
Identifier for the part. Must be set to TVGIPR_BUTTON . |
[out] lpRect |
Pointer to a RECT structure. If this method is successful, the structure receives the rectangle coordinates of the part specified by hItem and nPart . |
Return Value
true
if this method is successful; otherwise, false
.
Remarks
Each tree control item is bounded by a graphics rectangle. Whenever a point in that rectangle is clicked, the item is said to be hit. This method returns the largest rectangle such that when a point in the rectangle is clicked, the item identified by the hItem
parameter is hit.
This method sends the TVM_GETITEMPARTRECT
message, which is described in the Windows SDK. For more information, see the TreeView_GetItemPartRect macro.
Example
The following code example defines a variable, m_treeCtrl
, that is used to access the current tree-view control. The code example also defines an unsigned integer and several HTREEITEM variables. These variables are used in the next example.
public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;
Example
The following code example uses an accessibility identifier and the CTreeCtrl::MapAccIdToItem method to retrieve a handle to the root tree-view item. Then the example uses the handle and the CTreeCtrl::GetItemPartRect method to draw a 3D rectangle around that item. In an earlier section of the code example, which is not shown, we created a tree-view that consists of a root country/region node for the United States, subnodes for the states of Pennsylvania and Washington, and tree items for cities in those states. We used the CTreeCtrl::MapItemToAccID method to associate the root tree-view item with an accessibility identifier.
CRect rect;
HTREEITEM hUS = m_treeCtrl.MapAccIdToItem( accIdUS );
m_treeCtrl.GetItemPartRect( hUS, TVGIPR_BUTTON, &rect );
m_treeCtrl.GetDC()->Draw3dRect( &rect, RGB(255, 0, 0), RGB(0, 0, 255));
CTreeCtrl::GetItemRect
Call this function to retrieve the bounding rectangle for hItem
and determine whether it is visible or not.
BOOL GetItemRect(
HTREEITEM hItem,
LPRECT lpRect,
BOOL bTextOnly) const;
Parameters
hItem
The handle of a tree view control item.
lpRect
Pointer to a RECT structure that receives the bounding rectangle. The coordinates are relative to the upper-left corner of the tree view control.
bTextOnly
If this parameter is nonzero, the bounding rectangle includes only the text of the item. Otherwise it includes the entire line that the item occupies in the tree view control.
Return Value
Nonzero if the item is visible, with the bounding rectangle contained in lpRect
. Otherwise, 0 with lpRect
uninitialized.
Example
HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();
// Dump the bounds of hmyItem.
if (hmyItem != NULL)
{
RECT r;
m_TreeCtrl.GetItemRect(hmyItem, &r, FALSE);
TRACE(TEXT("left = %d, top = %d, right = %d, bottom = %d\r\n"),
r.left,
r.top,
r.right,
r.bottom);
}
CTreeCtrl::GetItemState
Returns the state of the item specified by hItem
.
UINT GetItemState(
HTREEITEM hItem,
UINT nStateMask) const;
Parameters
hItem
Handle of the item whose state is to be retrieved.
nStateMask
Mask indicating one or more states to be retrieved. For more information on possible values for nStateMask
, see the discussion of the state and stateMask members of the TVITEM structure in the Windows SDK.
Return Value
A UINT that holds the bitwise OR of the values specified by nStateMask. For information on possible values, see CTreeCtrl::GetItem. To find the value for a specific state, perform a bitwise AND operation of the state value and the return value, as shown in the following example.
Example
// Show all of the visible items in bold.
HTREEITEM hItem = m_TreeCtrl.GetFirstVisibleItem();
while (hItem != NULL)
{
m_TreeCtrl.SetItemState(hItem, TVIS_BOLD, TVIS_BOLD);
ASSERT(TVIS_BOLD & m_TreeCtrl.GetItemState(hItem, TVIS_BOLD));
hItem = m_TreeCtrl.GetNextVisibleItem(hItem);
}
CTreeCtrl::GetItemStateEx
Retrieves the extended state of the specified item in the current tree-view control.
UINT GetItemStateEx(HTREEITEM hItem) const;
Parameters
Parameter | Description |
---|---|
[in] hItem |
Handle to a tree-view control item. |
Return Value
The extended state of the item. For more information, see the uStateEx
member of the TVITEMEX structure.
Remarks
This method sends the TVM_GETITEM message, which is described in the Windows SDK. That message returns the TVITEMEX structure that describes the tree-view control item, and this method retrieves the uStateEx
member from that structure.
CTreeCtrl::GetItemText
Returns the text of the item specified by hItem
.
CString GetItemText(HTREEITEM hItem) const;
Parameters
hItem
Handle of the item whose text is to be retrieved.
Return Value
A CString
object containing the item's text.
Example
See the example for CTreeCtrl::GetNextItem.
CTreeCtrl::GetLastVisibleItem
Retrieves the last unexpanded node item in the current tree-view control.
HTREEITEM GetLastVisibleItem() const;
Return Value
The handle to the last unexpanded node item if the method is successful; otherwise, NULL
.
Remarks
This method sends the TVM_GETNEXTITEM message, which is described in the Windows SDK. For more information, see the TVGN_LASTVISIBLE
flag in the flag
parameter of that message.
Example
The following code example defines a variable, m_treeCtrl
, that is used to access the current tree-view control. The code example also defines an unsigned integer and several HTREEITEM variables. One or more of these variables are used in the next example.
public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;
Example
The following code example retrieves a handle to the last unexpanded tree-view node item, and then draws a 3D rectangle around that item. In an earlier section of the code example, which is not shown, we created a tree-view that consists of a root country/region node for the United States, subnodes for the states of Pennsylvania and Washington, and tree items for cities in those states.
CRect rect;
HTREEITEM hLast = m_treeCtrl.GetLastVisibleItem();
m_treeCtrl.GetItemPartRect( hLast, TVGIPR_BUTTON, &rect );
m_treeCtrl.GetDC()->Draw3dRect( &rect, RGB(255, 0, 0), RGB(0, 0, 255));
CTreeCtrl::GetLineColor
This member function implements the behavior of the win32 message TVM_GETLINECOLOR, as described in the Windows SDK.
COLORREF GetLineColor() const;
Return Value
The current line color.
Example
COLORREF cr = m_TreeCtrl.GetLineColor();
CTreeCtrl::GetNextItem
Call this function to retrieve the tree view item that has the specified relationship, indicated by the nCode
parameter, to hItem
.
HTREEITEM GetNextItem(
HTREEITEM hItem,
UINT nCode) const;
Parameters
hItem
Handle of a tree item.
nCode
A flag indicating the type of relation to hItem
. This flag can be one of the following values:
TVGN_CARET
Retrieves the currently selected item.TVGN_CHILD
Retrieves the first child item of the item specified by thehItem
parameter.TVGN_DROPHILITE
Retrieves the item that is the target of a drag-and-drop operation.TVGN_FIRSTVISIBLE
Retrieves the first visible item.TVGN_LASTVISIBLE
Retrieves the last expanded item in the tree. This does not retrieve the last item visible in the tree-view window.TVGN_NEXT
Retrieves the next sibling item.TVGN_NEXTVISIBLE
Retrieves the next visible item that follows the specified item.TVGN_PARENT
Retrieves the parent of the specified item.TVGN_PREVIOUS
Retrieves the previous sibling item.TVGN_PREVIOUSVISIBLE
Retrieves the first visible item that precedes the specified item.TVGN_ROOT
Retrieves the first child item of the root item of which the specified item is a part.
Return Value
The handle of the next item if successful; otherwise NULL.
Remarks
This function will return NULL if the item being retrieved is the root node of the tree. For example, if you use this message with the TVGN_PARENT
flag on a first-level child of the tree view's root node, the message will return NULL.
Example
For an example of using GetNextItem
in a loop, see CTreeCtrl::DeleteItem.
// find the currently selected item
HTREEITEM hCurSel = m_TreeCtrl.GetNextItem(TVI_ROOT, TVGN_CARET);
// report it to the user
if (hCurSel == NULL)
{
AfxMessageBox(_T("There is no selected item"));
}
else
{
CString str;
str.Format(_T("The currently selected item is \"%s\""),
(LPCTSTR)m_TreeCtrl.GetItemText(hCurSel));
AfxMessageBox((LPCTSTR)str);
}
CTreeCtrl::GetNextSiblingItem
Call this function to retrieve the next sibling of hItem
.
HTREEITEM GetNextSiblingItem(HTREEITEM hItem) const;
Parameters
hItem
Handle of a tree item.
Return Value
The handle of the next sibling item; otherwise NULL.
Example
HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();
// Show all of the children of hmyItem in bold.
if (m_TreeCtrl.ItemHasChildren(hmyItem))
{
HTREEITEM hItem = m_TreeCtrl.GetChildItem(hmyItem);
while (hItem != NULL)
{
m_TreeCtrl.SetItemState(hItem, TVIS_BOLD, TVIS_BOLD);
hItem = m_TreeCtrl.GetNextSiblingItem(hItem);
}
}
CTreeCtrl::GetNextVisibleItem
Call this function to retrieve the next visible item of hItem
.
HTREEITEM GetNextVisibleItem(HTREEITEM hItem) const;
Parameters
hItem
Handle of a tree item.
Return Value
The handle of the next visible item; otherwise NULL.
Example
See the example for CTreeCtrl::SetCheck.
CTreeCtrl::GetParentItem
Call this function to retrieve the parent of hItem
.
HTREEITEM GetParentItem(HTREEITEM hItem) const;
Parameters
hItem
Handle of a tree item.
Return Value
The handle of the parent item; otherwise NULL.
Remarks
This function will return NULL if the parent of the specified item is the root node of the tree.
Example
See the example for CTreeCtrl::EnsureVisible.
CTreeCtrl::GetPrevSiblingItem
Call this function to retrieve the previous sibling of hItem
.
HTREEITEM GetPrevSiblingItem(HTREEITEM hItem) const;
Parameters
hItem
Handle of a tree item.
Return Value
The handle of the previous sibling; otherwise NULL.
Example
HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();
// Show all of the previous siblings of hmyItem in bold.
HTREEITEM hItem = hmyItem;
while (hItem != NULL)
{
m_TreeCtrl.SetItemState(hItem, TVIS_BOLD, TVIS_BOLD);
hItem = m_TreeCtrl.GetPrevSiblingItem(hItem);
}
CTreeCtrl::GetPrevVisibleItem
Call this function to retrieve the previous visible item of hItem
.
HTREEITEM GetPrevVisibleItem(HTREEITEM hItem) const;
Parameters
hItem
Handle of a tree item.
Return Value
The handle of the previous visible item; otherwise NULL.
Example
HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();
// Show all of the previous visible items of hmyItem in bold.
HTREEITEM hItem = hmyItem;
while (hItem != NULL)
{
m_TreeCtrl.SetItemState(hItem, TVIS_BOLD, TVIS_BOLD);
hItem = m_TreeCtrl.GetPrevVisibleItem(hItem);
}
CTreeCtrl::GetRootItem
Call this function to retrieve the root item of the tree view control.
HTREEITEM GetRootItem() const;
Return Value
The handle of the root item; otherwise NULL.
Example
See the example for CTreeCtrl::EditLabel.
CTreeCtrl::GetScrollTime
Call this member function to retrieve the maximum scroll time for the tree view control.
UINT GetScrollTime() const;
Return Value
The maximum scroll time, in milliseconds.
Remarks
This member function implements the behavior of the win32 message TVM_GETSCROLLTIME, as described in the Windows SDK.
CTreeCtrl::GetSelectedCount
Retrieves the number of selected items in the current tree-view control.
UINT GetSelectedCount();
Return Value
The number of selected items.
Remarks
This method sends the TVM_GETSELECTEDCOUNT message, which is described in the Windows SDK.
CTreeCtrl::GetSelectedItem
Call this function to retrieve the currently selected item of the tree view control.
HTREEITEM GetSelectedItem() const;
Return Value
The handle of the selected item; otherwise NULL.
Example
// Expand the selected item and make it visible, if possible.
HTREEITEM hItem = m_TreeCtrl.GetSelectedItem();
if ((hItem != NULL) && m_TreeCtrl.ItemHasChildren(hItem))
{
m_TreeCtrl.Expand(hItem, TVE_EXPAND);
m_TreeCtrl.EnsureVisible(hItem);
}
CTreeCtrl::GetTextColor
This member function implements the behavior of the Win32 message TVM_GETTEXTCOLOR, as described in the Windows SDK.
COLORREF GetTextColor() const;
Return Value
A COLORREF value that represents the current text color. If this value is -1, the control is using the system color for the text color.
Example
See the example for CTreeCtrl::SetTextColor.
CTreeCtrl::GetToolTips
This member function implements the behavior of the Win32 message TVM_GETTOOLTIPS, as described in the Windows SDK.
CToolTipCtrl* GetToolTips() const;
Return Value
A pointer to a CToolTipCtrl object to be used by the tree control. If the Create member function uses the style TVS_NOTOOLTIPS, no tooltips are used, and NULL is returned.
Remarks
The MFC implementation of GetToolTips
returns a CToolTipCtrl
object, which is used by the tree control, rather than a handle to a tooltip control.
Example
// If the tree control does not have a tooltips control,
// then use m_ToolTips as the tooltips for the tree control.
if (m_TreeCtrl.GetToolTips() == NULL)
{
m_TreeCtrl.SetToolTips(&m_ToolTips);
}
CTreeCtrl::GetVisibleCount
Call this function to retrieve a count of the visible items in a tree view control.
UINT GetVisibleCount() const;
Return Value
The number of visible items in the tree view control; otherwise – 1.
Example
See the example for CTreeCtrl::SetCheck.
CTreeCtrl::HitTest
Call this function to determine the location of the specified point relative to the client area of a tree view control.
HTREEITEM HitTest(
CPoint pt,
UINT* pFlags = NULL) const;
HTREEITEM HitTest(TVHITTESTINFO* pHitTestInfo) const;
Parameters
pt
Client coordinates of the point to test.
pFlags
Pointer to an integer that receives information about the results of the hit test. It can be one or more of the values listed under the flags member in the Remarks section.
pHitTestInfo
Address of a TVHITTESTINFO structure that contains the position to hit test and that receives information about the results of the hit test.
Return Value
The handle of the tree view item that occupies the specified point or NULL if no item occupies the point.
Remarks
When this function is called, the pt
parameter specifies the coordinates of the point to test. The function returns the handle of the item at the specified point or NULL if no item occupies the point. In addition, the pFlags
parameter contains a value that indicates the location of the specified point. Possible values are:
Value | Meaning |
TVHT_ABOVE | Above the client area. |
TVHT_BELOW | Below the client area. |
TVHT_NOWHERE | In the client area, but below the last item. |
TVHT_ONITEM | On the bitmap or label associated with an item. |
TVHT_ONITEMBUTTON | On the button associated with an item. |
TVHT_ONITEMICON | On the bitmap associated with an item. |
TVHT_ONITEMINDENT | In the indentation associated with an item. |
TVHT_ONITEMLABEL | On the label (string) associated with an item. |
TVHT_ONITEMRIGHT | In the area to the right of an item. |
TVHT_ONITEMSTATEICON | On the state icon for a tree-view item that is in a user-defined state. |
TVHT_TOLEFT | To the left of the client area. |
TVHT_TORIGHT | To the right of the client area. |
Example
// Select the item that is at the point myPoint.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);
if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
m_TreeCtrl.SelectItem(hItem);
}
CTreeCtrl::InsertItem
Call this function to insert a new item in a tree view control.
HTREEITEM InsertItem(LPTVINSERTSTRUCT lpInsertStruct);
HTREEITEM InsertItem(
UINT nMask,
LPCTSTR lpszItem,
int nImage,
int nSelectedImage,
UINT nState,
UINT nStateMask,
LPARAM lParam,
HTREEITEM hParent,
HTREEITEM hInsertAfter);
HTREEITEM InsertItem(
LPCTSTR lpszItem,
HTREEITEM hParent = TVI_ROOT,
HTREEITEM hInsertAfter = TVI_LAST);
HTREEITEM InsertItem(
LPCTSTR lpszItem,
int nImage,
int nSelectedImage,
HTREEITEM hParent = TVI_ROOT,
HTREEITEM hInsertAfter = TVI_LAST);
Parameters
lpInsertStruct
A pointer to a TVINSERTSTRUCT
that specifies the attributes of the tree view item to be inserted.
nMask
Integer specifying which attributes to set. See the TVITEM
structure in the Windows SDK.
lpszItem
Address of a string containing the item's text.
nImage
Index of the item's image in the tree view control's image list.
nSelectedImage
Index of the item's selected image in the tree view control's image list.
nState
Specifies values for the item's states. See Tree View Control Item States in the Windows SDK for a list of appropriate states.
nStateMask
Specifies which states are to be set. See the TVITEM
structure in the Windows SDK.
lParam
A 32-bit application-specific value associated with the item.
hParent
Handle of the inserted item's parent.
hInsertAfter
Handle of the item after which the new item is to be inserted.
Return Value
Handle of the new item if successful; otherwise NULL.
Remarks
The example shows situations in which you might want to use each version of the function when inserting a tree control item.
Example
// Insert a root item using the structure. We must
// initialize a TVINSERTSTRUCT structure and pass its
// address to the call.
TVINSERTSTRUCT tvInsert;
tvInsert.hParent = NULL;
tvInsert.hInsertAfter = NULL;
tvInsert.item.mask = TVIF_TEXT;
tvInsert.item.pszText = _T("United States");
HTREEITEM hCountry = m_TreeCtrl.InsertItem(&tvInsert);
// Insert subitems of that root. Pennsylvania is
// a state in the United States, so its item will be a child
// of the United States item. We won't set any image or states,
// so we supply only the TVIF_TEXT mask flag. This
// override provides nearly complete control over the
// insertion operation without the tedium of initializing
// a structure. If you're going to add lots of items
// to a tree, you might prefer the structure override
// as it affords you a performance win by allowing you
// to initialize some fields of the structure only once,
// outside of your insertion loop.
HTREEITEM hPA = m_TreeCtrl.InsertItem(TVIF_TEXT,
_T("Pennsylvania"), 0, 0, 0, 0, 0, hCountry, NULL);
// Insert the "Washington" item and assure that it is
// inserted after the "Pennsylvania" item. This override is
// more appropriate for conveniently inserting items with
// images.
HTREEITEM hWA = m_TreeCtrl.InsertItem(_T("Washington"),
0, 0, hCountry, hPA);
// We'll add some cities under each of the states.
// The override used here is most appropriate
// for inserting text-only items.
m_TreeCtrl.InsertItem(_T("Pittsburgh"), hPA, TVI_SORT);
m_TreeCtrl.InsertItem(_T("Harrisburg"), hPA, TVI_SORT);
m_TreeCtrl.InsertItem(_T("Altoona"), hPA, TVI_SORT);
m_TreeCtrl.InsertItem(_T("Seattle"), hWA, TVI_SORT);
m_TreeCtrl.InsertItem(_T("Kalaloch"), hWA, TVI_SORT);
m_TreeCtrl.InsertItem(_T("Yakima"), hWA, TVI_SORT);
CTreeCtrl::ItemHasChildren
Use this function to determine whether the tree item specified by hItem
has child items.
BOOL ItemHasChildren(HTREEITEM hItem) const;
Parameters
hItem
Handle of a tree item.
Return Value
Nonzero if the tree item specified by hItem
has child items; 0 if it does not.
Remarks
If so, you can then use CTreeCtrl::GetChildItem to retrieve those child items.
Example
See the example for CTreeCtrl::GetSelectedItem.
CTreeCtrl::MapAccIdToItem
Maps the specified accessibility identifier to the handle of a tree-view item in the current tree-view control.
HTREEITEM MapAccIdToItem(UINT uAccId) const;
Parameters
Parameter | Description |
---|---|
[in] uAccId |
An accessibility identifier for an element in the tree-view item. |
Return Value
The handle to a tree-view item ( HTREEITEM
) that corresponds to the uAccId
parameter. For more information, see the hItem
member of the TVITEMEX structure.
Remarks
Accessibility aids are applications that help people with disabilities use computers. An accessibility identifier is used by the IAccessible
interface to uniquely specify an element in a window. For more information about accessibility identifiers, search for the "About Active Accessibility Support" topic at Microsoft Developer Network.
This method sends the TVM_MAPACCIDTOHTREEITEM message, which is described in the Windows SDK.
Example
The following code example defines a variable, m_treeCtrl
, that is used to access the current tree-view control. The code example also defines an unsigned integer and several HTREEITEM variables. These variables are used in the next example.
public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;
Example
The following code example uses an accessibility identifier and the CTreeCtrl::MapAccIdToItem method to retrieve a handle to the root tree-view item. The example uses the handle and the CTreeCtrl::GetItemPartRect method to draw a 3D rectangle around that item. In an earlier section of the code example, which is not shown, we created a tree-view that consists of a root country/region node for the United States, subnodes for the states of Pennsylvania and Washington, and tree items for cities in those states. We used the CTreeCtrl::MapItemToAccID method to associate the root tree-view item with an accessibility identifier.
CRect rect;
HTREEITEM hUS = m_treeCtrl.MapAccIdToItem( accIdUS );
m_treeCtrl.GetItemPartRect( hUS, TVGIPR_BUTTON, &rect );
m_treeCtrl.GetDC()->Draw3dRect( &rect, RGB(255, 0, 0), RGB(0, 0, 255));
CTreeCtrl::MapItemToAccID
Maps the specified handle of a tree-view item in the current tree-view control to an accessibility identifier.
UINT MapItemToAccID(HTREEITEM hItem) const;
Parameters
Parameter | Description |
---|---|
[in] hItem |
A handle of a tree-view item in the control. For more information, see the hItem member of the TVITEMEX structure. |
Return Value
The accessibility identifier that corresponds to the hItem
parameter.
Remarks
Accessibility aids are applications that help people with disabilities use computers. An accessibility identifier is used by the IAccessible
interface to uniquely specify an element in a window. For more information about accessibility identifiers, search for the "About Active Accessibility Support" topic at Microsoft Developer Network.
This method sends the TVM_MAPHTREEITEMTOACCID message, which is described in the Windows SDK.
Example
The following code example defines a variable, m_treeCtrl
, that is used to access the current tree-view control. The code example also defines an unsigned integer and several HTREEITEM variables. These variables are used in the next example.
public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;
Example
The following code example obtains an identification number for a tree-view control item. In an earlier section of the code example, which is not shown, we created a tree-view that consists of a root country/region node for the United States, subnodes for the states of Pennsylvania and Washington, and tree items for cities in those states. This code example obtains a unique identification number for the root country/region node.
// Map an accessibility identifier to the Pennsylvania node.
accIdUS = m_treeCtrl.MapItemToAccId( hCountry );
CTreeCtrl::Select
Call this function to select the given tree view item, scroll the item into view, or redraw the item in the style used to indicate the target of a drag-and-drop operation.
BOOL Select(
HTREEITEM hItem,
UINT nCode);
Parameters
hItem
Handle of a tree item.
nCode
The type of action to take. This parameter can be one of the following values:
TVGN_CARET
Sets the selection to the given item.TVGN_DROPHILITE
Redraws the given item in the style used to indicate the target of a drag-and-drop operation.TVGN_FIRSTVISIBLE
Scrolls the tree view vertically so that the given item is the first visible item.
Return Value
Nonzero if successful; otherwise 0.
Remarks
If nCode
contains the value TVGN_CARET
, the parent window receives the TVN_SELCHANGING and TVN_SELCHANGED notification messages. In addition, if the specified item is the child of a collapsed parent item, the parent's list of child items is expanded to reveal the specified item. In this case, the parent window receives the TVN_ITEMEXPANDING and TVN_ITEMEXPANDED notification messages.
Example
See the example for CTreeCtrl::HitTest.
CTreeCtrl::SelectDropTarget
Call this function to redraw the item in the style used to indicate the target of a drag-and-drop operation.
BOOL SelectDropTarget(HTREEITEM hItem);
Parameters
hItem
Handle of a tree item.
Return Value
Nonzero if successful; otherwise 0.
Example
// Set the item at the point myPoint as the drop target.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);
if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
m_TreeCtrl.SelectDropTarget(hItem);
ASSERT(m_TreeCtrl.GetDropHilightItem() == hItem);
}
CTreeCtrl::SelectItem
Call this function to select the given tree view item.
BOOL SelectItem(HTREEITEM hItem);
Parameters
hItem
Handle of a tree item.
Return Value
Nonzero if successful; otherwise 0.
Remarks
If hItem
is NULL, then this function selects no item.
Example
// Select the item that is at the point myPoint.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);
if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
m_TreeCtrl.SelectItem(hItem);
}
CTreeCtrl::SelectSetFirstVisible
Call this function to scroll the tree view vertically so that the given item is the first visible item.
BOOL SelectSetFirstVisible(HTREEITEM hItem);
Parameters
hItem
Handle of the tree item to be set as the first visible item.
Return Value
Nonzero if successful; otherwise 0.
Remarks
The function sends a message to the window with the TVM_SELECTITEM
and TVGN_FIRSTVISIBLE
message parameters.
Example
// Select the item at the point myPoint as the first visible item.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);
if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
m_TreeCtrl.SelectSetFirstVisible(hItem);
}
CTreeCtrl::SetAutoscrollInfo
Sets the autoscroll rate of the current tree-view control.
BOOL SetAutoscrollInfo(
UINT uPixelsPerSec,
UINT uUpdateTime);
Parameters
Parameter | Description |
---|---|
[in] uPixelsPerSec |
The number of pixels per second to scroll. |
[in] uUpdateTime |
The time interval between updates of the control. |
Return Value
Always returns true
.
Remarks
The autoscroll parameters are used to scroll into view an item that is currently not visible. The tree-view control must have the TVS_EX_AUTOHSCROLL
extended style, which is described in Tree-View Control Extended Styles.
This method sends the TVM_SETAUTOSCROLLINFO message, which is described in the Windows SDK.
Example
The following code example defines a variable, m_treeCtrl
, that is used to access the current tree-view control. The code example also defines an unsigned integer and several HTREEITEM variables. These variables are used in the next example.
public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;
Example
The following code example sets the autoscroll behavior of the current tree-view control. In an earlier section of the code example, which is not shown, we created a tree-view that consists of a root country/region node for the United States, subnodes for the states of Pennsylvania and Washington, and tree items for cities in those states. We intentionally made the tree-view control narrow so that it must automatically scroll to display the tree item that has the focus. The code example sets the tree-view control to automatically scroll 30 pixels per second every 5 seconds until the tree item is in view.
// Scroll 30 pixels/sec and redraw every 5 seconds.
m_treeCtrl.SetAutoscrollInfo( 30, 5 );
CTreeCtrl::SetBkColor
This member function implements the behavior of the Win32 message TVM_SETBKCOLOR, as described in the Windows SDK.
COLORREF SetBkColor(COLORREF clr);
Parameters
clr
A COLORREF value that contains the new background color. If this value is -1, the control will revert to using the system color for the background color.
Return Value
A COLORREF value that represents the current text color. If this value is -1, the control is using the system color for the text color.
Example
See the example for CTreeCtrl::SetTextColor.
CTreeCtrl::SetCheck
Call this member function to set the check state for a tree control item.
BOOL SetCheck(
HTREEITEM hItem,
BOOL fCheck = TRUE);
Parameters
hItem
The HTREEITEM to receive the check state change.
fCheck
Indicates whether the tree control item is to be checked or unchecked. By default, SetCheck
sets the item to be checked.
Return Value
Nonzero if successful; otherwise 0.
Remarks
When the tree control item is checked ( fCheck
set to TRUE), the item appears with an adjacent checkmark.
Example
UINT uCount = m_TreeCtrl.GetVisibleCount();
HTREEITEM hItem = m_TreeCtrl.GetFirstVisibleItem();
// Toggle the check state of all the visible items.
for (UINT i = 0; i < uCount; i++)
{
ASSERT(hItem != NULL);
m_TreeCtrl.SetCheck(hItem, !m_TreeCtrl.GetCheck(hItem));
hItem = m_TreeCtrl.GetNextVisibleItem(hItem);
}
Example
To use checkboxes, set TVS_CHECKBOXES before populating the tree control.
m_TreeCtrl.ModifyStyle(0, TVS_CHECKBOXES);
HTREEITEM aItem = m_TreeCtrl.InsertItem(_T("AAA"));
m_TreeCtrl.SetCheck(aItem);
CTreeCtrl::SetExtendedStyle
Sets the extended styles for the current tree-view control.
DWORD SetExtendedStyle(
DWORD dwExMask,
DWORD dwExStyles);
Parameters
Parameter | Description |
---|---|
[in] dwExMask |
A bitmask that specifies which styles in the current tree-view control are affected by this method. If this parameter is zero, it is ignored and the value of the dwExStyles parameter is assigned to the tree-view control.Specify zero or a bitwise combination (OR) of styles described in Tree-View Control Extended Styles. |
[in] dwExStyles |
A bitmask that specifies which styles in the current tree-view control to set or clear. To set a combination of styles, specify a bitwise combination (OR) of styles described in Tree-View Control Extended Styles. To clear a set of styles, specify zero. |
Return Value
A value that contains the previous extended control styles.
Remarks
This method clears the styles specified in the dwExMask
parameter, then sets the styles specified in the dwExStyles
parameter. Only the extended styles that correspond to the bits in dwExMask
change.
This method sends the TVM_SETEXTENDEDSTYLE message, which is described in the Windows SDK.
Example
The following code example defines a variable, m_treeCtrl
, that is used to access the current tree-view control. The code example also defines an unsigned integer and several HTREEITEM variables. These variables are used in the next example.
public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;
Example
The following code example adds the TVS_EX_AUTOHSCROLL
extended style to the current tree-view control. In an earlier section of the code example, which is not shown, we created a tree-view that consists of a root country/region node for the United States, subnodes for the states of Pennsylvania and Washington, and tree items for cities in those states. We intentionally made the tree-view control narrow so that it must automatically scroll to display the tree item that has the focus.
m_treeCtrl.SetExtendedStyle(TVS_EX_AUTOHSCROLL, TVS_EX_AUTOHSCROLL);
CTreeCtrl::SetImageList
Call this function to set the normal or state image list for a tree view control and redraw the control using the new images.
CImageList* SetImageList(
CImageList* pImageList,
int nImageListType);
Parameters
pImageList
Pointer to the image list to assign. If pImageList
is NULL, all images are removed from the tree view control.
nImageListType
Type of image list to set. The image list can be one of the following values:
TVSIL_NORMAL
Sets the normal image list, which contains the selected and nonselected images for the tree view item. You must use this state for overlay images.TVSIL_STATE
Sets the state image list, which contains the images for tree view items that are in a user-defined state.
Return Value
Pointer to the previous image list, if any; otherwise NULL.
Example
See the example for CTreeCtrl::GetImageList.
CTreeCtrl::SetIndent
Call this function to set the width of indentation for a tree view control and redraw the control to reflect the new width.
void SetIndent(UINT nIndent);
Parameters
nIndent
Width, in pixels, of the indentation. If nIndent
is less than the system-defined minimum width, the new width is set to the system-defined minimum.
Example
See the example for CTreeCtrl::GetIndent.
CTreeCtrl::SetInsertMark
This member function implements the behavior of the Win32 message TVM_SETINSERTMARK, as described in the Windows SDK.
BOOL SetInsertMark(
HTREEITEM hItem,
BOOL fAfter = TRUE);
Parameters
hItem
HTREEITEM that specifies at which item the insertion mark will be placed. If this argument is NULL, the insertion mark is removed.
fAfter
BOOL value that specifies if the insertion mark is placed before or after the specified item. If this argument is nonzero, the insertion mark will be placed after the item. If this argument is zero, the insertion mark will be placed before the item.
Return Value
Nonzero if successful; otherwise 0.
Example
// Set the insert mark to be before the item at the point myPoint.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);
if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
m_TreeCtrl.SetInsertMark(hItem, FALSE);
}
CTreeCtrl::SetInsertMarkColor
This member function implements the behavior of the Win32 message TVM_SETINSERTMARKCOLOR, as described in the Windows SDK.
COLORREF SetInsertMarkColor(COLORREF clrNew);
Parameters
clrNew
A COLORREF value that contains the new insertion mark color.
Return Value
A COLORREF value that contains the previous insertion mark color.
Example
See the example for CTreeCtrl::GetInsertMarkColor.
CTreeCtrl::SetItem
Call this function to set the attributes of the specified tree view item.
BOOL SetItem(TVITEM* pItem);
BOOL SetItem(
HTREEITEM hItem,
UINT nMask,
LPCTSTR lpszItem,
int nImage,
int nSelectedImage,
UINT nState,
UINT nStateMask,
LPARAM lParam);
Parameters
pItem
A pointer to a TVITEM structure that contains the new item attributes, as described in the Windows SDK.
hItem
Handle of the item whose attributes are to be set. See the hItem member of the TVITEM
structure in the Windows SDK.
nMask
Integer specifying which attributes to set. See the mask member of the TVITEM
structure.
lpszItem
Address of a string containing the item's text.
nImage
Index of the item's image in the tree view control's image list. See the iImage
member of the TVITEM
structure.
nSelectedImage
Index of the item's selected image in the tree view control's image list. See the iSelectedImage member of the TVITEM
structure.
nState
Specifies values for the item's states. See the State member of the TVITEM
structure.
nStateMask
Specifies which states are to be set. See the stateMask member of the TVITEM
structure.
lParam
A 32-bit application-specific value associated with the item.
Return Value
Nonzero if successful; otherwise 0.
Remarks
In the TVITEM
structure, the hItem member identifies the item, and the mask member specifies which attributes to set.
If the mask member or the nMask
parameter specifies the TVIF_TEXT
value, the pszText member or the lpszItem
is the address of a null-terminated string and the cchTextMax member is ignored. If mask (or nMask
) specifies the TVIF_STATE
value, the stateMask member or the nStateMask
parameter specifies which item states to change and the state member or nState
parameter contains the values for those states.
Example
// Show the item at the point myPoint in bold.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);
if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
m_TreeCtrl.SetItem(hItem, TVIF_STATE, NULL, 0, 0, TVIS_BOLD,
TVIS_BOLD, 0);
}
CTreeCtrl::SetItemData
Call this function to set the 32-bit application-specific value associated with the specified item.
BOOL SetItemData(
HTREEITEM hItem,
DWORD_PTR dwData);
Parameters
hItem
Handle of the item whose data is to be retrieved.
dwData
A 32-bit application-specific value associated with the item specified by hItem
.
Return Value
Nonzero if successful; otherwise 0.
Example
CString str;
HTREEITEM hItem;
// Insert 20 items into the tree control making every item's
// data be the handle of the item.
for (int i = 0; i < 20; i++)
{
str.Format(TEXT("item %d"), i);
hItem = m_TreeCtrl.InsertItem(str);
if (hItem != NULL)
{
m_TreeCtrl.SetItemData(hItem, (DWORD_PTR)hItem);
}
}
CTreeCtrl::SetItemExpandedImageIndex
Sets the index of the image to display when the specified item of the current tree-view control is in the expanded state.
BOOL SetItemExpandedImageIndex(
HTREEITEM hItem,
int iExpandedImage);
Parameters
Parameter | Description |
---|---|
[in] hItem |
Handle to a tree-view control item. |
[in] iExpandedImage |
The index of the image to display when the specified item is in the expanded state. |
Return Value
true
if this method is successful; otherwise, false
.
Remarks
This method sends the TVM_SETITEM message, which is described in the Windows SDK. This method assigns the iExpandedImage
parameter to the iExpandedImage
member of a TVITEMEX structure, and then uses that structure in the message.
Example
The following code example defines a variable, m_treeCtrl
, that is used to access the current tree-view control. The code example also defines an unsigned integer and several HTREEITEM variables. These variables are used in the next example.
public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;
Example
The following code example is a trivial test to determine whether the CTreeCtrl::GetItemExpandedImageIndex method returns the value set by the CTreeCtrl::SetItemExpandedImageIndex method. In an earlier section of the code example, which is not shown, we created a tree-view that consists of a root country/region node for the United States, subnodes for the states of Pennsylvania and Washington, and tree items for cities in those states.
CString str;
CString msg = _T("The set and retrieved item expanded image ")
_T("indexes are%s equal.");
int nSetItem = 0;
m_treeCtrl.SetItemExpandedImageIndex( hCountry, nSetItem );
int nItem = m_treeCtrl.GetItemExpandedImageIndex( hCountry );
if (nItem == nSetItem)
str.Format(msg, _T(""));
else
str.Format(msg, _T(" not"));
AfxMessageBox(str, MB_ICONINFORMATION);
CTreeCtrl::SetItemHeight
This member function implements the behavior of the Win32 message TVM_SETITEMHEIGHT, as described in the Windows SDK.
SHORT SetItemHeight(SHORT cyHeight);
Parameters
cyHeight
Specifies the new height of every item in the tree view, in pixels. If this argument is less than the height of the images, then it will be set to the height of the images. If this argument is not even, it will be rounded down to the nearest even value. If this argument is -1, the control will revert to using its default item height.
Return Value
The previous height of the items, in pixels.
Example
See the example for CTreeCtrl::GetItemHeight.
CTreeCtrl::SetItemImage
Associates images with an item.
BOOL SetItemImage(
HTREEITEM hItem,
int nImage,
int nSelectedImage);
Parameters
hItem
Handle of the item whose image is to be set.
nImage
Index of the item's image in the tree view control's image list.
nSelectedImage
Index of the item's selected image in the tree view control's image list.
Return Value
Nonzero if successful; otherwise 0.
Remarks
Each item in a tree view control can have a pair of bitmapped images associated with it. The images appear on the left side of an item's label. One image is displayed when the item is selected, and the other is displayed when the item is not selected. For example, an item might display an open folder when it is selected and a closed folder when it is not selected.
Call this function to set the index of the item's image and its selected image within the tree view control's image list.
For more information on images, see CImageList.
Example
See the example for CTreeCtrl::GetItemImage.
CTreeCtrl::SetItemState
Sets the state of the item specified by hItem
.
BOOL SetItemState(
HTREEITEM hItem,
UINT nState,
UINT nStateMask);
Parameters
hItem
Handle of the item whose state is to be set.
nState
Specifies new states for the item.
nStateMask
Specifies which states are to be changed.
Return Value
Nonzero if successful; otherwise 0.
Remarks
For information on states, see CTreeCtrl::GetItem.
Example
See the example for CTreeCtrl::GetItemState.
CTreeCtrl::SetItemStateEx
Sets the extended state of the specified item in the current tree-view control.
BOOL SetItemStateEx(
HTREEITEM hItem,
UINT uStateEx);
Parameters
Parameter | Description |
---|---|
[in] hItem |
Handle to a tree-view control item. |
[in] uStateEx |
The extended state of the item. For more information, see the uStateEx member of the TVITEMEX structure. |
Return Value
true
if this method is successful; otherwise, false
.
Remarks
This method sends the TVM_SETITEM message, which is described in the Windows SDK. This method assigns the uStateEx
parameter to the uStateEx
member of a TVITEMEX structure, and then uses that structure in the message.
Example
The following code example defines a variable, m_treeCtrl
, that is used to access the current tree-view control. The code example also defines an unsigned integer and several HTREEITEM variables. These variables are used in the next example.
public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;
Example
The following code example sets a tree-view item to disabled state. In an earlier section of the code example, which is not shown, we created a tree-view that consists of a root country/region node for the United States, subnodes for the states of Pennsylvania and Washington, and tree items for cities in those states. This code example sets the Pennsylvania node to disabled state.
// Disable the Pennsylvania node.
m_treeCtrl.SetItemStateEx( hPA, TVIS_EX_DISABLED );
CTreeCtrl::SetItemText
Sets the text of the item specified by hItem
.
BOOL SetItemText(
HTREEITEM hItem,
LPCTSTR lpszItem);
Parameters
hItem
Handle of the item whose text is to be set.
lpszItem
Address of a string containing the new text for the item
Return Value
Nonzero if successful; otherwise 0.
Example
// Clear the text of the item at point myPoint.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);
if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
m_TreeCtrl.SetItemText(hItem, NULL);
}
CTreeCtrl::SetLineColor
Call this member function to set the current line color for the tree view control.
COLORREF SetLineColor(COLORREF clrNew = CLR_DEFAULT);
Parameters
clrNew
The new line color.
Return Value
The previous line color.
Remarks
This member function implements the behavior of the win32 message TVM_SETLINECOLOR, as described in the Windows SDK.
Example
COLORREF clrPrev = m_TreeCtrl.SetLineColor(RGB(255, 0, 0));
CTreeCtrl::SetScrollTime
Call this member function to set the maximum scroll time for the tree view control.
UINT SetScrollTime(UINT uScrollTime);
Parameters
uScrollTime
The new maximum scroll time, in milliseconds. If this value is less than 100, it will be rounded up to 100.
Return Value
The previous maximum scroll time, in milliseconds.
Remarks
This member function implements the behavior of the win32 message TVM_SETSCROLLTIME, as described in the Windows SDK.
CTreeCtrl::SetTextColor
This member function implements the behavior of the Win32 message TVM_SETTEXTCOLOR, as described in the Windows SDK.
COLORREF SetTextColor(COLORREF clr);
Parameters
clr
A COLORREF value that contains the new text color. If this argument is -1, the control will revert to using the system color for the text color.
Return Value
A COLORREF value that represents the previous text color. If this value is -1, the control was using the system color for the text color.
Example
// change text color to white and background to dark blue
m_TreeCtrl.SetTextColor(RGB(255, 255, 255));
ASSERT(m_TreeCtrl.GetTextColor() == RGB(255, 255, 255));
m_TreeCtrl.SetBkColor(RGB(0, 0, 128));
ASSERT(m_TreeCtrl.GetBkColor() == RGB(0, 0, 128));
// force repaint immediately
m_TreeCtrl.Invalidate();
CTreeCtrl::SetToolTips
This member function implements the behavior of the Win32 message TVM_SETTOOLTIPS, as described in the Windows SDK.
CToolTipCtrl* SetToolTips(CToolTipCtrl* pWndTip);
Parameters
pWndTip
A pointer to a CToolTipCtrl object that the tree control will use.
Return Value
A pointer to a CToolTipCtrl object containing the tooltip previously used by the control, or NULL if no tooltips were used previously.
Remarks
To use tooltips, indicate the TVS_NOTOOLTIPS style when you create the CTreeCtrl
object.
Example
See the example for CTreeCtrl::GetToolTips.
CTreeCtrl::ShowInfoTip
Displays the infotip for the specified item in the current tree-view control.
void ShowInfoTip(HTREEITEM hItem);
Parameters
Parameter | Description |
---|---|
[in] hItem |
A handle to a tree-view item in the control. For more information, see the hItem member of the TVITEMEX structure. |
Remarks
For more information about the difference between tooltips and infotips, search for the "Tooltips and Infotips" topic at Microsoft Developer Network.
This method sends the TVM_SHOWINFOTIP message, which is described in the Windows SDK.
CTreeCtrl::SortChildren
Call this function to alphabetically sort the child items of the given parent item in a tree view control.
BOOL SortChildren(HTREEITEM hItem);
Parameters
hItem
Handle of the parent item whose child items are to be sorted. If hItem
is NULL, sorting will proceed from the root of the tree.
Return Value
Nonzero if successful; otherwise 0.
Remarks
SortChildren
will not recurse through the tree; only the immediate children of hItem
will be sorted.
Example
// Sort all of the items in the tree control.
m_TreeCtrl.SortChildren(TVI_ROOT);
CTreeCtrl::SortChildrenCB
Call this function to sort tree view items using an application-defined callback function that compares the items.
BOOL SortChildrenCB(LPTVSORTCB pSort);
Parameters
pSort
Pointer to a TVSORTCB structure.
Return Value
Nonzero if successful; otherwise 0.
Remarks
The structure's comparison function, lpfnCompare, must return a negative value if the first item should precede the second, a positive value if the first item should follow the second, or zero if the two items are equivalent.
The lParam1
and lParam2
parameters correspond to the lParam member of the TVITEM structure for the two items being compared. The lParamSort
parameter corresponds to the lParam member of the TV_SORTCB
structure.
Example
// Sort the item in reverse alphabetical order.
int CALLBACK MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
// lParamSort contains a pointer to the tree control.
// The lParam of an item is just its handle,
// as specified with SetItemData
CTreeCtrl* pmyTreeCtrl = (CTreeCtrl*)lParamSort;
CString strItem1 = pmyTreeCtrl->GetItemText((HTREEITEM)lParam1);
CString strItem2 = pmyTreeCtrl->GetItemText((HTREEITEM)lParam2);
return strItem2.Compare(strItem1);
}
TVSORTCB tvs;
// Sort the tree control's items using my
// callback procedure.
tvs.hParent = TVI_ROOT;
tvs.lpfnCompare = MyCompareProc;
tvs.lParam = (LPARAM)&m_TreeCtrl;
m_TreeCtrl.SortChildrenCB(&tvs);
See Also
MFC Sample CMNCTRL1
CWnd Class
Hierarchy Chart
CImageList Class