共用方式為


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

樹狀結構控制項中的每個專案 ( CTreeCtrl ) 都有目前的狀態。 例如,項目可選取、停用、展開等等。 在大部分的情況下,樹狀目錄控制項會自動設定項目的狀態以反映使用者動作,例如選擇項目。 不過,您也可以使用 SetItemState 成員函式來設定專案的狀態,並使用 GetItemState 成員函式擷取專案的 目前狀態。 如需專案狀態的完整清單,請參閱 Windows SDK 中的樹狀檢視控制項常數

專案的目前狀態是由 nState 參數指定。 樹狀目錄控制項可能會變更項目的狀態來反映自訂動作,例如選取項目或為項目設定焦點。 此外,應用程式可變更項目的狀態以停用或隱藏項目,或指定重疊影像或狀態影像。

當您指定或變更專案的狀態時, nStateMask 參數會指定要設定的狀態位,而 nState 參數會包含這些位的新值。 例如,下列範例會將 物件 m_treeCtrl 中父專案的目前狀態(由 hParentItem 指定) CTreeCtrl 變更為 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 宏,包含重迭影像的一個基底索引,而該重迭影像的左移位為 8 位 索引可為 0,表示不指定重疊影像。 重迭影像必須由先前呼叫 CImageList::SetOverlayImage 函式,新增至樹狀結構控制項的重迭影像清單。 函式會指定要新增之影像的一個型索引;這是與 INDEXTOOVERLAYMASK 宏搭配使用的索引。 樹狀目錄控制項有四個重疊影像。

若要設定專案的狀態影像,nStateMask 必須包含 TVIS_STATEIMAGEMASK 值,而 nState 必須使用 INDEXTOSTATEIMAGEMASK 宏,包含狀態影像的一個基底索引,而狀態影像的位移為 12 位 索引可為 0,表示不指定狀態影像。 如需重迭和狀態影像的詳細資訊,請參閱 樹狀結構控制影像清單

另請參閱

使用 CTreeCtrl
Controls