次の方法で共有


ツリー コントロールのイメージ リスト

更新 : 2007 年 11 月

ツリー コントロール (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 メンバ関数は、ツリー コントロールのイメージ リストのハンドルを取得します。この関数は、さらにイメージをリストに追加する必要がある場合に使用します。イメージ リストの詳細については、『MFC リファレンス』の「CImageList の使い方」と「CImageList」および Windows SDK の「Image Lists」を参照してください。

参照

概念

コントロール (MFC)

参照

CTreeCtrl の使い方