樹狀目錄控制項的父和子項目
樹狀結構控制項 ( CTreeCtrl ) 中的任何專案都可以有一份子專案清單,這些子專案稱為子專案,與子專案相關聯。 有一個或多個子項目的項目稱為父項目。 子項目會在其父項目下方以縮排顯示,表示其附屬於父代。 沒有父代的項目會位於階層架構的頂端並稱為根項目。
在任何指定時間內,父項目的子項目清單狀態可以是展開或摺疊。 當其狀態為展開時,表示子項目會顯示在父項目下方。 當它摺疊時,則不會顯示子項目。 當使用者按兩下父專案時,清單會自動在展開和折迭狀態之間切換,或者當使用者按一下與父專案相關聯的按鈕時,如果父專案具有 TVS_HASBUTTONS 樣式, 清單就會自動切換。 應用程式可以使用 Expand 成員函式來展開或折迭子專案 。
您可以呼叫 InsertItem 成員函式,將專案新增至樹狀結構控制項。 此函式會傳回 HTREEITEM 類型的控制碼 ,可唯一識別專案。 在加入項目時,您必須指定新項目之父項目的控制代碼。 如果您指定 Null 或 TVI_ROOT 值,而不是 TVINSERTSTRUCT 結構或 hParent 參數中的 父專案控制碼,則會將專案新增為根專案。
樹狀目錄控制項會在父專案的子專案清單即將展開或折迭時,傳送 TVN_ITEMEXPANDING 通知訊息。 通知為您提供一個機會,可防止變更或根據子項目清單狀態設定父項目的任何屬性。 變更清單的狀態之後,樹狀結構控制項會傳送 TVN_ITEMEXPANDED 通知訊息。
當子項目清單展開時,它會以相對於父項目的位置進行縮排。 您可以使用 SetIndent 成員函式來設定縮排的數量 ,或使用 GetIndent 成員函式擷取目前的數量 。