コールバック項目とコールバック マスク

通常、リスト ビュー コントロールはその各項目について、ラベル テキスト、項目のアイコン画像のリスト インデックス、項目の状態の一連のビット フラグを格納します。 個々の項目は、コールバック項目として定義できます。項目に関するなんらかの情報がアプリケーションにあらかじめ格納されている場合に、コールバックは有益な機能を果たします。

コールバック項目を定義するには、LVITEM 構造体のメンバーである pszTextiImage に適切な値を指定します (CListCtrl::GetItem を参照)。 その項目またはサブ項目のテキストをアプリケーションが保持している場合、pszText メンバーに LPSTR_TEXTCALLBACK 値を指定します。 アプリケーションが項目のアイコンを常時把握しているようであれば、iImage メンバーに I_IMAGECALLBACK 値を指定します。

コールバック項目を定義することに加え、コントロールのコールバック マスクを変更することもできます。 このマスクは、最新のデータをコントロールではなくアプリケーションが格納している項目の状態を指定する一連のビット フラグです。 コールバック項目の指定が個別の項目に適用されるのに対し、コールバック マスクは、コントロールのすべての項目に適用されます。 コールバック マスクの既定値はゼロです。これは、項目のすべての状態がそのコントロールによって追跡されることを意味します。 この既定の動作を変更するには、マスクを次の値の任意の組み合わせに初期化します。

  • LVIS_CUT 項目は切り取り/貼り付け操作の対象としてマークされます。

  • LVIS_DROPHILITED 項目はドラッグ アンド ドロップ ターゲットとして強調表示されます。

  • LVIS_FOCUSED 項目にフォーカスが設定されます。

  • LVIS_SELECTED 項目が選択されます。

  • LVIS_OVERLAYMASK 各項目の最新のオーバーレイ画像のリスト インデックスをアプリケーションが格納します。

  • LVIS_STATEIMAGEMASK 各項目の最新の状態画像のリスト インデックスをアプリケーションが格納します。

このマスクの取得と設定について詳しくは、「CListCtrl::GetCallbackMask」と「CListCtrl::SetCallbackMask」を参照してください。

関連項目

CListCtrl の使い方
コントロール