ツリー コントロールのイメージ リスト
ツリーコントロール (CTreeCtrl) の各項目には、1 組のビットマップ イメージを関連付けることができます。 項目のラベルの左側にイメージが表示されます。 項目が選択されると 1 つのイメージが表示され、項目が選択されていないときにもう一方のイメージが表示されます。 たとえば、項目を選択したときに開いているフォルダーを表示し、選択されていない場合は閉じたフォルダーを表示することができます。
項目イメージを使用するには、CImageList オブジェクトを構築し、CImageList::Create 関数を使用して関連付けられているイメージ リストを作成することによって、イメージ リストを作成する必要があります。 次に、目的のビットマップをリストに追加し、 SetImageList メンバー関数を使用してリストをツリーコントロールに関連付けます。 既定では、[すべての項目] には、選択状態と非選択状態の両方のイメージ リストの最初のイメージが表示されます。 特定の項目の既定の動作を変更するには、InsertItem メンバー関数を使用して項目をツリー コントロールに追加するときに、選択したイメージと選択されていないイメージのインデックスを指定します。 SetItemImage メンバー関数を使用すると、項目を追加した後でインデックスを変更できます。
ツリー コントロールのイメージ リストには、項目イメージに重ねて表示されるオーバーレイ イメージを含めることもできます。 ツリー コントロール項目の状態のビット 8~11 の 0 以外の値は、オーバーレイ イメージの 1 から始まるインデックスを指定します (0 はオーバーレイ イメージがないことを示します)。 4 ビットの、1 から始まるインデックスが使用されるため、オーバーレイ イメージはイメージ リスト内の最初の 15 個のイメージの中にある必要があります。 ツリー コントロール項目の状態の詳細については、このトピックで前述した「ツリー コントロール項目の状態の概要」を参照してください。
状態イメージ リストが指定されている場合、ツリー コントロールは、状態イメージの各項目のアイコンの左側に領域を予約します。 アプリケーションでは、チェック ボックスや消去されたチェック ボックスなどの状態イメージを使用して、アプリケーション定義の項目の状態を示すことができます。 ビット 12~15 の 0 以外の値は、状態イメージの 1 から始まるインデックスを指定します (0 は状態イメージがないことを示します)。
イメージのインデックスではなく I_IMAGECALLBACK 値を指定することによって、項目が再描画されるまで、選択されたイメージまたは選択を終了したイメージの指定を遅らせることができます。 I_IMAGECALLBACK は、 TVN_GETDISPINFO 通知メッセージを送信することによって、インデックスのアプリケーションをクエリするようにツリー コントロールに指示します。
GetImageList メンバー関数は、ツリー コントロールのイメージ リストのハンドルを取得します。 この関数は、一覧にイメージを追加する必要がある場合に便利です。 イメージ リスト関数の詳細については、Windows SDK の「 CImageList の使用」、「CImageList」、「MFC リファレンス」および「イメージ リスト」を参照してください。