共用方式為


樹狀目錄控制項項目狀態概觀

在樹狀目錄控制項中的每個項目 (CTreeCtrl) 已經為目前的狀態。 例如,可以選取項目,已停用、 展開,依此類推。 大多數的情況下,樹狀目錄控制項中會自動設定項目的狀態以便反映使用者的動作,例如選取的項目。 不過,您也可以設定項目的狀態使用 SetItemState 成員函式和擷取的項目使用的目前狀態 GetItemState 成員函式。 項目狀態的完整清單,請參閱樹狀檢視控制項常數在Windows SDK。

藉由指定項目的目前狀態,則nState參數。 樹狀目錄控制項可能會變更項目的狀態以便反映使用者的行動,例如選取那個項目,或將焦點設定至該項目。 此外,應用程式可能會變更項目的狀態來停用或隱藏的項目,或指定覆疊影像或狀態影像。

當您指定或變更項目的狀態, nStateMask參數指定的狀態下,位元,若要設定,以及nState參數會包含這些位元的新值。 比方說,下例修改目前的父項目狀態 (藉由指定hParentItem) 在CTreeCtrl物件 (m_treeCtrl) 至 TVIS_EXPANDPARTIAL

TVITEM curItem;
HTREEITEM hParentItem;

hParentItem = m_TreeCtrl.GetSelectedItem();

//modify the parent item to keep the '+' sign
curItem.mask = TVIF_STATE | TVIF_HANDLE;
curItem.hItem = hParentItem;
curItem.state = TVIS_EXPANDPARTIAL;
curItem.stateMask = TVIS_EXPANDPARTIAL;
m_TreeCtrl.SetItem(&curItem);

狀態變更的另一個範例是以設定某個項目覆疊影像。 若要這麼做, nStateMask必須包含TVIS_OVERLAYMASK的值,以及nState必須包含起始的索引重疊影像移位留八個位元,藉由使用 INDEXTOOVERLAYMASK 巨集。 索引可以為 0 以指定無覆疊影像。 覆疊影像必須加入到樹狀目錄控制項的清單,覆疊影像的上一個呼叫 CImageList::SetOverlayImage 函式。 函式可指定起始的索引,映像,以新增; 這是搭配索引 INDEXTOOVERLAYMASK 巨集。 樹狀目錄控制項可以有最多四個覆疊影像。

若要設定項目的狀態影像, nStateMask必須包含TVIS_STATEIMAGEMASK的值,以及nState必須包含起始的索引要移動之狀態影像保留 12 位元,藉由使用 INDEXTOSTATEIMAGEMASK 巨集。 索引可以為 0 以指定無狀態影像。 如需有關重疊和狀態影像的詳細資訊,請參閱樹狀目錄控制項影像會列出

請參閱

參考

使用 CTreeCtrl

概念

控制項 (MFC)