次の方法で共有


ツリー コントロール項目の状態の概要

ツリー コントロール (CTreeCtrl)の各項目に現在の状態があります。たとえば、項目は配置して無効にして、などの選択できます。ほとんどの場合、ツリー コントロールは自動的に項目の選択などのユーザー アクションが反映するように項目の状態を設定します。ただし、 SetItemState のメンバー関数を使用して項目の状態を設定し、 GetItemState のメンバー関数を使用して項目の現在の状態を取得できます。項目の状態の完全な一覧については、 Windows SDKの ツリービュー コントロールの定数 を参照してください。

項目の現在の状態は nState パラメーターによって指定されます。ツリー コントロールは、項目を選択するか、項目にフォーカスを設定するなどのユーザー アクションが反映するように項目の状態を変更する場合があります。また、アプリケーションは、無効にするか、項目を非表示にするか、オーバーレイ イメージまたは状態イメージを指定するように項目の状態を変更する場合があります。

項目の状態を指定または変更すると、 nStateMask パラメーターに設定する状態ビットと nState パラメーターがそのビットの値が設定されているかを指定します。たとえば、次の例では TVIS_EXPANDPARTIALへの CTreeCtrl のオブジェクト (m_treeCtrl)の親項目の現在の状態 ( hParentItemで指定された)を変更します:

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 ビットの 1 から始まるインデックスを含める必要があります。インデックスは、オーバーレイ イメージを指定しない 0 になります。オーバーレイ イメージは CImageList::SetOverlayImage 関数への前の呼び出しによってツリー コントロールのオーバーレイ イメージの一覧に追加する必要があります。関数は、追加するイメージの 1 から始まるインデックスを指定します; これは INDEXTOOVERLAYMASK マクロとして使用されているインデックスです。ツリー コントロールでは 4 つまでのオーバーレイ イメージがある場合があります。

に項目の状態のイメージを設定するには、 nStateMask は TVIS_STATEIMAGEMASK 値を含む nState は INDEXTOSTATEIMAGEMASK マクロの使用に左にシフト状態イメージ 12 ビットの 1 から始まるインデックスを含める必要があります。インデックスは状態イメージを指定しない 0 になります。状態イメージとオーバーレイに関する詳細については、 ツリー コントロールのイメージ リストを参照してください。

参照

関連項目

CTreeCtrl の使い方

概念

コントロール (MFC)