次の方法で共有


CListCtrl クラス

"リスト ビュー コントロール" の機能をカプセル化します。このコントロールには項目のコレクションを表示され、各項目はイメージ リストのアイコンとラベルで構成されます。

構文

class CListCtrl : public CWnd

メンバー

パブリック コンストラクター

名前 説明
CListCtrl::CListCtrl CListCtrl オブジェクトを構築します。

パブリック メソッド

名前 説明
CListCtrl::ApproximateViewRect リスト ビュー コントロールの項目を表示するために必要な幅と高さを指定します。
CListCtrl::Arrange グリッド上の項目を整列します。
CListCtrl::CancelEditLabel アイテムテキスト編集操作を取り消します。
CListCtrl::Create リスト コントロールを作成し、 CListCtrl オブジェクトにアタッチします。
CListCtrl::CreateDragImage 指定した項目のドラッグ イメージ リストを作成します。
CListCtrl::CreateEx 指定した Windows 拡張スタイルを使用してリスト コントロールを作成し、 CListCtrl オブジェクトにアタッチします。
CListCtrl::DeleteAllItems コントロールからすべての項目を削除します。
CListCtrl::DeleteColumn リスト ビュー コントロールから列を削除します。
CListCtrl::DeleteItem コントロールから項目を削除します。
CListCtrl::DrawItem 所有者描画コントロールの視覚的な側面が変更されたときに呼び出されます。
CListCtrl::EditLabel アイテムのテキストのインプレース編集を開始します。
CListCtrl::EnableGroupView リスト ビュー コントロール内の項目をグループとして表示するかどうかを有効または無効にします。
CListCtrl::EnsureVisible 項目が確実に表示されるようにします。
CListCtrl::FindItem 指定した特性を持つリスト ビュー項目を検索します。
CListCtrl::GetBkColor リスト ビュー コントロールの背景色を取得します。
CListCtrl::GetBkImage リスト ビュー コントロールの現在の背景画像を取得します。
CListCtrl::GetCallbackMask リスト ビュー コントロールのコールバック マスクを取得します。
CListCtrl::GetCheck アイテムに関連付けられている状態イメージの現在の表示状態を取得します。
CListCtrl::GetColumn コントロールの列の属性を取得します。
CListCtrl::GetColumnOrderArray リスト ビュー コントロールの列の順序 (左から右) を取得します。
CListCtrl::GetColumnWidth レポート ビューまたはリスト ビューの列の幅を取得します。
CListCtrl::GetCountPerPage リスト ビュー コントロールに垂直方向に収めることができる項目の数を計算します。
CListCtrl::GetEditControl アイテムのテキストを編集するために使用する編集コントロールのハンドルを取得します。
CListCtrl::GetEmptyText 現在のリスト ビュー コントロールが空の場合に表示する文字列を取得します。
CListCtrl::GetExtendedStyle リスト ビュー コントロールの現在の拡張スタイルを取得します。
CListCtrl::GetFirstSelectedItemPosition リスト ビュー コントロールで最初に選択したリスト ビュー 項目の位置を取得します。
CListCtrl::GetFocusedGroup 現在のリスト ビュー コントロールにキーボード フォーカスがあるグループを取得します。
CListCtrl::GetGroupCount 現在のリスト ビュー コントロール内のグループの数を取得します。
CListCtrl::GetGroupInfo リスト ビュー コントロールの指定したグループの情報を取得します。
CListCtrl::GetGroupInfoByIndex 現在のリスト ビュー コントロール内の指定したグループに関する情報を取得します。
CListCtrl::GetGroupMetrics グループのメトリックを取得します。
CListCtrl::GetGroupRect 現在のリスト ビュー コントロール内の指定したグループの外接する四角形を取得します。
CListCtrl::GetGroupState 現在のリスト ビュー コントロール内の指定したグループの状態を取得します。
CListCtrl::GetHeaderCtrl リスト ビュー コントロールのヘッダー コントロールを取得します。
CListCtrl::GetHotCursor リスト ビュー コントロールに対してホット トラッキングが有効になっているときに使用されるカーソルを取得します。
CListCtrl::GetHotItem 現在カーソルの下にあるリスト ビュー項目を取得します。
CListCtrl::GetHoverTime リスト ビュー コントロールの現在のホバー時間を取得します。
CListCtrl::GetImageList リスト ビューアイテムの描画に使用されるイメージ リストのハンドルを取得します。
CListCtrl::GetInsertMark 挿入マークの現在位置を取得します。
CListCtrl::GetInsertMarkColor 挿入マークの現在の色を取得します。
CListCtrl::GetInsertMarkRect 挿入ポイントを囲む矩形を取得します。
CListCtrl::GetItem リスト ビュー アイテムの属性を取得します。
CListCtrl::GetItemCount リスト ビュー コントロール内の項目の数を取得します。
CListCtrl::GetItemData 項目に関連付けられているアプリケーション固有の値を取得します。
CListCtrl::GetItemIndexRect 現在のリスト ビュー コントロールのサブ項目のすべてまたは一部の外接する四角形を取得します。
CListCtrl::GetItemPosition リスト ビュー アイテムの位置を取得します。
CListCtrl::GetItemRect 項目の外接する四角形を取得します。
CListCtrl::GetItemSpacing 現在のリスト ビュー コントロール内の項目間の間隔を計算します。
CListCtrl::GetItemState リスト ビュー アイテムの状態を取得します。
CListCtrl::GetItemText リスト ビュー項目またはサブ項目のテキストを取得します。
CListCtrl::GetNextItem 指定したプロパティを持ち、指定したアイテムとのリレーションシップを持つリスト ビュー アイテムを検索します。
CListCtrl::GetNextItemIndex 指定したプロパティ セットを持つ現在のリスト ビュー コントロール内の項目のインデックスを取得します。
CListCtrl::GetNextSelectedItem リスト ビュー項目の位置のインデックスと、反復処理のために選択した次のリスト ビュー 項目の位置を取得します。
CListCtrl::GetNumberOfWorkAreas リスト ビュー コントロールの現在の作業領域の数を取得します。
CListCtrl::GetOrigin リスト ビュー コントロールの現在のビューの原点を取得します。
CListCtrl::GetOutlineColor リスト ビュー コントロールの境界線の色を取得します。
CListCtrl::GetSelectedColumn リスト コントロールで現在選択されている列のインデックスを取得します。
CListCtrl::GetSelectedCount リスト ビュー コントロールで選択されている項目の数を取得します。
CListCtrl::GetSelectionMark リスト ビュー コントロールの選択マークを取得します。
CListCtrl::GetStringWidth 指定されたすべての文字列を表示するために必要な最小列幅を決定します。
CListCtrl::GetSubItemRect リスト ビュー コントロール内の項目の外接する四角形を取得します。
CListCtrl::GetTextBkColor リスト ビュー コントロールのテキストの背景色を取得します。
CListCtrl::GetTextColor リスト ビュー コントロールのテキストの色を取得します。
CListCtrl::GetTileInfo リスト ビュー コントロール内のタイルに関する情報を取得します。
CListCtrl::GetTileViewInfo タイル ビューのリスト ビュー コントロールに関する情報を取得します。
CListCtrl::GetToolTips リスト ビュー コントロールがツールヒントの表示に使用するツールヒント コントロールを取得します。
CListCtrl::GetTopIndex 最上位に表示される項目のインデックスを取得します。
CListCtrl::GetView リスト ビュー コントロールのビューを取得します。
CListCtrl::GetViewRect リスト ビュー コントロール内のすべての項目の外接する四角形を取得します。
CListCtrl::GetWorkAreas リスト ビュー コントロールの現在の作業領域を取得します。
CListCtrl::HasGroup リスト ビュー コントロールに指定したグループがあるかどうかを判断します。
CListCtrl::HitTest 指定した位置にあるリスト ビュー 項目を決定します。
CListCtrl::InsertColumn リスト ビュー コントロールに新しい列を挿入します。
CListCtrl::InsertGroup リスト ビュー コントロールにグループを挿入します。
CListCtrl::InsertGroupSorted 指定したグループをグループの順序付きリストに挿入します。
CListCtrl::InsertItem リスト ビュー コントロールに新しい項目を挿入します。
CListCtrl::InsertMarkHitTest 指定したポイントに最も近い挿入ポイントを取得します。
CListCtrl::IsGroupViewEnabled リスト ビュー コントロールに対してグループ ビューを有効にするかどうかを指定します。
CListCtrl::IsItemVisible 現在のリスト ビュー コントロール内の指定した項目が表示されるかどうかを示します。
CListCtrl::MapIDToIndex 現在のリスト ビュー コントロール内の項目の一意の ID をインデックスにマップします。
CListCtrl::MapIndexToID 現在のリスト ビュー コントロール内の項目のインデックスを一意の ID にマップします。
CListCtrl::MoveGroup 指定したグループを移動します。
CListCtrl::MoveItemToGroup 指定したグループを、リスト ビュー コントロールの指定した 0 から始まるインデックスに移動します。
CListCtrl::RedrawItems リスト ビュー コントロールで、項目の範囲を強制的に再描画します。
CListCtrl::RemoveAllGroups リスト ビュー コントロールからすべてのグループを削除します。
CListCtrl::RemoveGroup リスト ビュー コントロールから指定したグループを削除します。
CListCtrl::Scroll リスト ビュー コントロールの内容をスクロールします。
CListCtrl::SetBkColor リスト ビュー コントロールの背景色を設定します。
CListCtrl::SetBkImage リスト ビュー コントロールの現在の背景イメージを設定します。
CListCtrl::SetCallbackMask リスト ビュー コントロールのコールバック マスクを設定します。
CListCtrl::SetCheck アイテムに関連付けられている状態イメージの現在の表示状態を設定します。
CListCtrl::SetColumn リスト ビュー列の属性を設定します。
CListCtrl::SetColumnOrderArray リスト ビュー コントロールの列の順序 (左から右) を設定します。
CListCtrl::SetColumnWidth レポート ビューまたはリスト ビューの列の幅を変更します。
CListCtrl::SetExtendedStyle リスト ビュー コントロールの現在の拡張スタイルを設定します。
CListCtrl::SetGroupInfo リスト ビュー コントロールの指定したグループの情報を設定します。
CListCtrl::SetGroupMetrics リスト ビュー コントロールのグループ メトリックを設定します。
CListCtrl::SetHotCursor リスト ビュー コントロールでホット トラッキングが有効な場合に使用されるカーソルを設定します。
CListCtrl::SetHotItem リスト ビュー コントロールの現在のホットアイテムを設定します。
CListCtrl::SetHoverTime リスト ビュー コントロールの現在のホバー時間を設定します。
CListCtrl::SetIconSpacing リスト ビュー コントロール内のアイコン間の間隔を設定します。
CListCtrl::SetImageList リスト ビュー コントロールにイメージ リストを割り当てます。
CListCtrl::SetInfoTip ツールヒントのテキストを設定します。
CListCtrl::SetInsertMark 挿入ポイントを定義された位置に設定します。
CListCtrl::SetInsertMarkColor 挿入ポイントの色を設定します。
CListCtrl::SetItem リスト ビュー アイテムの属性の一部またはすべてを設定します。
CListCtrl::SetItemCount 多数の項目を追加するためのリスト ビュー コントロールを準備します。
CListCtrl::SetItemCountEx 仮想リスト ビュー コントロールの項目数を設定します。
CListCtrl::SetItemData 項目のアプリケーション固有の値を設定します。
CListCtrl::SetItemIndexState 現在のリスト ビュー コントロール内の項目の状態を設定します。
CListCtrl::SetItemPosition リスト ビュー コントロール内の指定した位置に項目を移動します。
CListCtrl::SetItemState リスト ビュー コントロール内の項目の状態を変更します。
CListCtrl::SetItemText リスト ビュー項目またはサブ項目のテキストを変更します。
CListCtrl::SetOutlineColor リスト ビュー コントロールの境界線の色を設定します。
CListCtrl::SetSelectedColumn リスト ビュー コントロールの選択した列を設定します。
CListCtrl::SetSelectionMark リスト ビュー コントロールの選択マークを設定します。
CListCtrl::SetTextBkColor リスト ビュー コントロール内のテキストの背景色を設定します。
CListCtrl::SetTextColor リスト ビュー コントロールのテキストの色を設定します。
CListCtrl::SetTileInfo リスト ビュー コントロールのタイルの情報を設定します。
CListCtrl::SetTileViewInfo リスト ビュー コントロールがタイル ビューで使用する情報を設定します。
CListCtrl::SetToolTips リスト ビュー コントロールがツールヒントの表示に使用するツールヒント コントロールを設定します。
CListCtrl::SetView リスト ビュー コントロールのビューを設定します。
CListCtrl::SetWorkAreas リスト ビュー コントロールにアイコンを表示できる領域を設定します。
CListCtrl::SortGroups リスト ビュー コントロールのグループをユーザー定義関数で並べ替えます。
CListCtrl::SortItems アプリケーション定義比較関数を使用してリスト ビュー項目を並べ替えます。
CListCtrl::SortItemsEx アプリケーション定義比較関数を使用してリスト ビュー項目を並べ替えます。
CListCtrl::SubItemHitTest 特定の位置にあるリスト ビュー項目 (存在する場合) を決定します。
CListCtrl::Update 指定した項目を強制的に再描画します。

解説

アイコンとラベルに加えて、各項目には、アイコンとラベルの右側の列に情報を表示できます。 このコントロール (したがって、 CListCtrl クラス) は、Windows 95/98 および Windows NT バージョン 3.51 以降で実行されているプログラムでのみ使用できます。

CListCtrl クラスの簡単な概要を次に示します。 詳細な概念的な説明については、「CListCtrlControls の使用を参照してください。

ビュー

リスト ビュー コントロールは、"ビュー" と呼ばれる 4 つの異なる方法でコンテンツを表示できます。

  • アイコン ビュー

    各項目は、フルサイズのアイコン (32 x 32 ピクセル) として表示され、その下にラベルが付いています。 ユーザーは、リスト ビュー ウィンドウ内の任意の場所に項目をドラッグできます。

  • 小さいアイコン ビュー

    各項目は小さなアイコン (16 x 16 ピクセル) として表示され、右側にラベルが付いています。 ユーザーは、リスト ビュー ウィンドウ内の任意の場所に項目をドラッグできます。

  • リスト ビュー

    各アイテムは、その右側にラベルが付いた小さなアイコンとして表示されます。 項目は列に配置され、リスト ビュー ウィンドウ内の任意の場所にドラッグすることはできません。

  • レポート ビュー

    各項目は独自の行に表示され、右側の列に追加情報が配置されます。 左端の列には小さなアイコンとラベルが含まれており、後続の列にはアプリケーションで指定されたサブ項目が含まれます。 埋め込みヘッダー コントロール (クラス CHeaderCtrl) は、これらの列を実装します。 レポート ビューのヘッダー コントロールと列の詳細については、「 使用する CListCtrl: コントロールへの列の追加 (レポート ビュー)」を参照してください。

コントロールの現在のリスト ビューのスタイルによって、現在のビューが決まります。 これらのスタイルとその使用方法の詳細については、「CListCtrlの使用: リスト コントロール スタイルの変更を参照してください。

拡張スタイル

クラス CListCtrl は、標準のリスト スタイルに加えて、拡張スタイルの大規模なセットをサポートし、強化された機能を提供します。 この機能の例を次に示します。

  • ホバー選択

    有効にすると、カーソルがアイテムの上に一定期間残っている場合に、項目を自動的に選択できます。

  • 仮想リスト ビュー

    有効にすると、コントロールは最大 DWORD 項目をサポートできます。 これは、アプリケーションで項目データを管理するオーバーヘッドを配置することによって可能です。 項目の選択とフォーカス情報を除き、すべての項目情報をアプリケーションで管理する必要があります。 詳細については、「CListCtrlの使用: 仮想リスト コントロール」を参照してください。

  • 1 回と 2 回のクリックによるアクティブ化

    有効にすると、ホット トラッキング (アイテム テキストの自動強調表示) と、強調表示されたアイテムの 1 クリックまたは 2 回クリックによるアクティブ化が許可されます。

  • 列のドラッグ アンド ドロップ順序

    有効にすると、リスト ビュー コントロール内の列をドラッグ アンド ドロップで並べ替えることができます。 レポート ビューでのみ使用できます。

これらの新しい拡張スタイルの使用方法については、「 使用する CListCtrl: リスト コントロール スタイルの変更を参照してください。

アイテムとサブ項目

リスト ビュー コントロール内の各項目は、アイコン (イメージ リストから)、ラベル、現在の状態、およびアプリケーション定義値 ("項目データ" と呼ばれます) で構成されます。 1 つ以上のサブ項目を各項目に関連付けることもできます。 "サブ項目" は、レポート ビューで、アイテムのアイコンとラベルの右側の列に表示できる文字列です。 リスト ビュー コントロール内のすべての項目は、同じ数のサブ項目を持つ必要があります。

クラス CListCtrl には、これらの項目を挿入、削除、検索、および変更するためのいくつかの関数が用意されています。 詳細については、「 CListCtrl::GetItemCListCtrl::InsertItemCListCtrl::FindItem」、「 項目をコントロールに追加する」および「 リスト コントロールでのスクロール、配置、並べ替え、検索」を参照

既定では、リスト ビュー コントロールはアイテムのアイコンとテキスト属性を格納します。 ただし、これらの項目型に加えて、クラス CListCtrl では "コールバック項目" がサポートされます。"コールバック項目" は、コントロールではなくアプリケーションがテキスト、アイコン、またはその両方を格納するリスト ビュー項目です。 コールバック マスクは、アプリケーションによって提供される項目属性 (テキストやアイコン) を指定するために使用されます。 アプリケーションでコールバック項目を使用する場合は、テキスト属性やアイコン属性をオンデマンドで指定できる必要があります。 コールバック項目は、アプリケーションがこの情報の一部を既に保持している場合に役立ちます。 詳細については、「CListCtrlの使用: コールバック項目とコールバック マスク」を参照してください。

イメージ リスト

リスト ビュー項目のアイコン、ヘッダー項目イメージ、およびアプリケーション定義の状態は、リスト ビュー コントロールを作成して割り当てる複数のイメージ リスト (クラス CImageListによって実装されます) に含まれています。 各リスト ビュー コントロールには、最大 4 種類の画像リストを含めることができます。

  • 大アイコン

    フルサイズのアイコンのアイコン ビューで使用されます。

  • 小アイコン

    アイコン ビューで使用されるアイコンの小さいバージョンに対して、小さいアイコン、リスト、およびレポート ビューで使用されます。

  • アプリケーション定義の状態

    状態イメージが含まれています。これは、アプリケーション定義の状態を示す項目のアイコンの横に表示されます。

  • ヘッダー項目

    レポート ビューで、各ヘッダー コントロール アイテムに表示される小さな画像に使用されます。

既定では、リスト ビュー コントロールは、破棄されたときに割り当てられたイメージ リストを破棄します。ただし、開発者は、アプリケーションによって決定された各イメージ リストが使用されなくなったときに破棄することで、この動作をカスタマイズできます。 詳細については、「CListCtrlの使用: リスト アイテムとイメージ リスト」を参照してください。

継承階層

CObject

CCmdTarget

CWnd

CListCtrl

要件

ヘッダー: afxcmn.h

CListCtrl::ApproximateViewRect

リスト ビュー コントロールの項目を表示するために必要な幅と高さを指定します。

CSize ApproximateViewRect(
    CSize sz = CSize(-1, -1),
    int iCount = -1) const;

パラメーター

sz
コントロールの提案された寸法 (ピクセル単位)。 ディメンションが指定されていない場合、フレームワークはコントロールの現在の幅または高さの値を使用します。

iCount
コントロールに表示する項目の数。 コントロール内の現在の項目の合計数を使用するには、-1 を渡します。

戻り値

項目を表示するために必要なおおよその幅と高さをピクセル単位で格納する CSize オブジェクト。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_ApproximateViewRect Win32 マクロの動作を実装します。

CListCtrl::Arrange

アイコン ビュー内の項目をグリッド上に配置するように位置を変更します。

BOOL Arrange(UINT nCode);

パラメーター

nCode
項目の配置スタイルを指定します。 次のいずれかの値を指定できます。

  • LVA_ALIGNLEFT ウィンドウの左端に沿って項目を配置します。
  • LVA_ALIGNTOP ウィンドウの上端に沿って項目を配置します。
  • LVA_DEFAULT リスト ビューの現在の配置スタイル (既定値) に従って項目を整列します。
  • LVA_SNAPTOGRID すべてのアイコンを最も近いグリッド位置にスナップします。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

nCode パラメーターは、配置スタイルを指定します。

// Align all of the list view control items along the top
// of the window (the list view control must be in icon or
// small icon mode).
m_myListCtrl.Arrange(LVA_ALIGNTOP);

CListCtrl::CancelEditLabel

アイテムテキスト編集操作を取り消します。

void CancelEditLabel();

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_CANCELEDITLABEL メッセージの機能をエミュレートします。

CListCtrl::CListCtrl

CListCtrl オブジェクトを構築します。

CListCtrl();

CListCtrl::Create

リスト コントロールを作成し、 CListCtrl オブジェクトにアタッチします。

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

パラメーター

dwStyle
リスト コントロールのスタイルを指定します。 リスト コントロール スタイルの任意の組み合わせをコントロールに適用します。 これらのスタイルの完全な一覧については、Windows SDK の リスト ビュー ウィンドウ スタイル を参照してください。 SetExtendedStyleを使用して、コントロールに固有の拡張スタイルを設定します。

rect
リスト コントロールのサイズと位置を指定します。 CRect オブジェクトまたはRECT構造体のいずれかを指定できます。

pParentWnd
リスト コントロールの親ウィンドウ (通常は CDialog) を指定します。 NULL は指定できません。

nID
リスト コントロールの ID を指定します。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

2 つの手順で CListCtrl を構築します。 まず、コンストラクターを呼び出し、 Createを呼び出します。これにより、リスト ビュー コントロールが作成され、 CListCtrl オブジェクトにアタッチされます。

拡張 Windows スタイルをリスト コントロール オブジェクトに適用するには、Createの代わりにCreateExを呼び出します。

m_myListCtrl.Create(
    WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT|LVS_EDITLABELS,
    CRect(10,10,400,200), pParentWnd, IDD_MYLISTCTRL);

CListCtrl::CreateEx

コントロール (子ウィンドウ) を作成し、 CListCtrl オブジェクトに関連付けます。

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

パラメーター

dwExStyle
作成するコントロールの拡張スタイルを指定します。 拡張 Windows スタイルの一覧については、Windows SDK のCreateWindowExdwExStyle パラメーターを参照してください。

dwStyle
リスト コントロールのスタイルを指定します。 リスト コントロール スタイルの任意の組み合わせをコントロールに適用します。 これらのスタイルの完全な一覧については、Windows SDK の「 リスト ビュー ウィンドウ スタイル 」を参照してください。

rect
pParentWndのクライアント座標で、作成するウィンドウのサイズと位置を記述するRECT構造体への参照。

pParentWnd
コントロールの親であるウィンドウへのポインター。

nID
コントロールの子ウィンドウ ID。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

CreateではなくCreateExを使用して、Windows 拡張スタイルの前置WS_EX_で指定された拡張 Windows スタイルを適用します。

CreateEx は、 dwExStyleで指定された拡張 Windows スタイルを使用してコントロールを作成します。 コントロールに固有の拡張スタイルを設定するには、 SetExtendedStyleを呼び出します。 たとえば、 CreateEx を使用してWS_EX_CONTEXTHELPなどのスタイルを設定しますが、 SetExtendedStyle を使用してLVS_EX_FULLROWSELECTなどのスタイルを設定します。 詳細については、Windows SDK の「<Extended List View Styles」の記事で説明されているスタイルを参照してください。

CListCtrl::CreateDragImage

nItemで指定された項目のドラッグ イメージ リストを作成します。

CImageList* CreateDragImage(
    int nItem,
    LPPOINT lpPoint);

パラメーター

*nItem*
ドラッグ イメージ リストを作成するアイテムのインデックス。

lpPoint
画像の左上隅の初期位置をビュー座標で受け取る POINT 構造体のアドレス。

戻り値

成功した場合のドラッグ 画像リストへのポインター。それ以外の場合は NULL

解説

CImageList オブジェクトは永続的であり、完了したら削除する必要があります。 次に例を示します。

CImageList* pImageList = m_myListCtrl.CreateDragImage(nItem, &point);

// do something

delete pImageList;

CListCtrl::DeleteAllItems

リスト ビュー コントロールからすべての項目を削除します。

BOOL DeleteAllItems();

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

// Delete all of the items from the list view control.
m_myListCtrl.DeleteAllItems();
ASSERT(m_myListCtrl.GetItemCount() == 0);

CListCtrl::DeleteColumn

リスト ビュー コントロールから列を削除します。

BOOL DeleteColumn(int nCol);

パラメーター

nCol
削除する列のインデックス。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

int nColumnCount = m_myListCtrl.GetHeaderCtrl()->GetItemCount();

// Delete all of the columns.
for (int i=0; i < nColumnCount; i++)
{
    m_myListCtrl.DeleteColumn(0);
}

CListCtrl::DeleteItem

リスト ビュー コントロールから項目を削除します。

BOOL DeleteItem(int nItem);

パラメーター

nItem
削除する項目のインデックスを指定します。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

int nCount = m_myListCtrl.GetItemCount();

// Delete all of the items from the list view control.
for (int i=0; i < nCount; i++)
{
    m_myListCtrl.DeleteItem(0);
}

CListCtrl::DrawItem

所有者描画リスト ビュー コントロールの視覚的な側面が変更されたときにフレームワークによって呼び出されます。

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

パラメーター

lpDrawItemStruct
必要な描画の種類に関する情報を含む DRAWITEMSTRUCT 構造体への長いポインター。

解説

DRAWITEMSTRUCT構造体のitemAction メンバーは、実行する描画アクションを定義します。

既定では、このメンバー関数は何も行いません。 このメンバー関数をオーバーライドして、所有者描画 CListCtrl オブジェクトの描画を実装します。

アプリケーションは、このメンバー関数が終了する前に、 lpDrawItemStruct で指定された表示コンテキストに対して選択されているすべてのグラフィックス デバイス インターフェイス (GDI) オブジェクトを復元する必要があります。

CListCtrl::EditLabel

アイテムのテキストのインプレース編集を開始します。

CEdit* EditLabel(int nItem);

パラメーター

nItem
編集するリスト ビュー アイテムのインデックス。

戻り値

成功した場合は、アイテムテキストの編集に使用される CEdit オブジェクトへのポインター。それ以外の場合は NULL

解説

LVS_EDITLABELS ウィンドウ スタイルを持つリスト ビュー コントロールを使用すると、ユーザーはアイテム ラベルを適切に編集できます。 ユーザーは、フォーカスがあるアイテムのラベルをクリックして編集を開始します。

この関数を使用して、指定したリスト ビュー アイテムのテキストのインプレース編集を開始します。

// Make sure the focus is set to the list view control.
m_myListCtrl.SetFocus();

// Show the edit control on the label of the first
// item in the list view control.
CEdit* pmyEdit = m_myListCtrl.EditLabel(1);
ASSERT(pmyEdit != NULL);

CListCtrl::EnableGroupView

リスト ビュー コントロール内の項目をグループとして表示するかどうかを有効または無効にします。

LRESULT EnableGroupView(BOOL fEnable);

パラメーター

fEnable
リスト ビュー コントロールを有効にして、表示される項目をグループ化するかどうかを示します。 TRUE グループ化を有効にする場合。 FALSE して無効にします。

戻り値

次の値のいずれか。

  • 0 リスト ビュー項目をグループとして表示する機能は、既に有効または無効になっています。
  • 1 コントロールの状態が正常に変更されました。
  • -1 操作に失敗しました。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_ENABLEGROUPVIEW メッセージの機能をエミュレートします。

CListCtrl::EnsureVisible

リスト ビューアイテムが少なくとも部分的に表示されるようにします。

BOOL EnsureVisible(
    int nItem,
    BOOL bPartialOK);

パラメーター

nItem
表示するリスト ビュー項目のインデックス。

bPartialOK
部分的な可視性を許容できるかどうかを指定します。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

必要に応じて、リスト ビュー コントロールがスクロールされます。 bPartialOK パラメーターが 0 以外の場合、項目が部分的に表示されている場合はスクロールは発生しません。

// Ensure that the last item is visible.
int nCount = m_myListCtrl.GetItemCount();
if (nCount > 0)
    m_myListCtrl.EnsureVisible(nCount-1, FALSE);

CListCtrl::FindItem

指定した特性を持つリスト ビュー項目を検索します。

int FindItem(
    LVFINDINFO* pFindInfo,
    int nStart = -1) const;

パラメーター

pFindInfo
検索対象の項目に関する情報を含む LVFINDINFO 構造体へのポインター。

nStart
検索を開始する項目のインデックス、または最初から開始する -1。 nStartが -1 と等しくない場合、nStartの項目は検索から除外されます。

戻り値

成功した場合は項目のインデックス、それ以外の場合は -1。

解説

pFindInfo パラメーターは、リスト ビューアイテムの検索に使用される情報を含むLVFINDINFO構造体を指します。

LVFINDINFO info;
int nIndex;

info.flags = LVFI_PARTIAL|LVFI_STRING;
info.psz = _T("item");

// Delete all of the items that begin with the string.
while ((nIndex = m_myListCtrl.FindItem(&info)) != -1)
{
    m_myListCtrl.DeleteItem(nIndex);
}

CListCtrl::GetBkColor

リスト ビュー コントロールの背景色を取得します。

COLORREF GetBkColor() const;

戻り値

RGB 色を指定するために使用される 32 ビット値。

CListCtrl::SetBkColor の例を参照してください。

CListCtrl::GetBkImage

リスト ビュー コントロールの現在の背景画像を取得します。

BOOL GetBkImage(LVBKIMAGE* plvbkImage) const;

パラメーター

plvbkImage
リスト ビューの現在の背景画像を含む LVBKIMAGE 構造体へのポインター。

戻り値

成功した場合は 0 以外、それ以外の場合は 0 を返します。

解説

このメソッドは、Windows SDK で説明されているように、 ListView_GetBkImage Win32 マクロの動作を実装します。

LVBKIMAGE bki;

// If no background image is set for the list view control use
// the Microsoft homepage image as the background image.
if (m_myListCtrl.GetBkImage(&bki) && (bki.ulFlags == LVBKIF_SOURCE_NONE))
{
    m_myListCtrl.SetBkImage(
        _T("https://www.microsoft.com/library/images/gifs/homepage/microsoft.gif"),
        TRUE);
}

CListCtrl::GetCallbackMask

リスト ビュー コントロールのコールバック マスクを取得します。

UINT GetCallbackMask() const;

戻り値

リスト ビュー コントロールのコールバック マスク。

解説

"コールバック項目" は、コントロールではなくアプリケーションがテキスト、アイコン、またはその両方を格納するリスト ビュー項目です。 リスト ビュー コントロールではこれらの属性を格納できますが、アプリケーションでこの情報の一部が既に保持されている場合は、コールバック項目を使用できます。 コールバック マスクは、アプリケーションによって保持される項目状態ビットを指定し、特定の項目ではなくコントロール全体に適用されます。 コールバック マスクの既定値はゼロです。これは、項目のすべての状態がそのコントロールによって追跡されることを意味します。 アプリケーションがコールバック項目を使用する場合、または 0 以外のコールバック マスクを指定する場合は、必要に応じてリスト ビュー項目属性を指定できる必要があります。

CListCtrl::SetCallbackMask の例を参照してください。

CListCtrl::GetCheck

アイテムに関連付けられている状態イメージの現在の表示状態を取得します。

BOOL GetCheck(int nItem) const;

パラメーター

nItem
リスト コントロール項目の 0 から始まるインデックス。

戻り値

項目が選択されている場合は 0 以外、それ以外の場合は 0。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_GetCheckState Win32 マクロの動作を実装します。

CListCtrl::SetCheck の例を参照してください。

CListCtrl::GetColumn

リスト ビュー コントロールの列の属性を取得します。

BOOL GetColumn(
    int nCol,
    LVCOLUMN* pColumn) const;

パラメーター

nCol
属性を取得する列のインデックス。

pColumn
列に関する情報を取得および受信する情報を指定する LVCOLUMN 構造体のアドレス。 mask メンバーは、取得する列属性を指定します。 mask メンバーがLVCF_TEXT値を指定する場合、pszText メンバーには項目テキストを受け取るバッファーのアドレスが含まれている必要があり、cchTextMax メンバーはバッファーのサイズを指定する必要があります。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

LVCOLUMN構造体には、レポート ビューの列に関する情報が含まれています。

LVCOLUMN col;

col.mask = LVCF_WIDTH;

// Double the column width of the first column.
if (m_myListCtrl.GetColumn(0, &col))
{
    col.cx *= 2;
    m_myListCtrl.SetColumn(0, &col);
}

CListCtrl::GetColumnOrderArray

リスト ビュー コントロールの列の順序 (左から右) を取得します。

BOOL GetColumnOrderArray(
    LPINT piArray,
    int iCount = -1);

パラメーター

piArray
リスト ビュー コントロール内の列のインデックス値を格納するバッファーへのポインター。 バッファーは、リスト ビュー コントロール内の列の合計数を格納するのに十分な大きさである必要があります。

iCount
リスト ビュー コントロール内の列の数。 このパラメーターが -1 の場合、列の数はフレームワークによって自動的に取得されます。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_GetColumnOrderArray Win32 マクロの動作を実装します。

// Reverse the order of the columns in the list view control
// (i.e. make the first column the last, the last column
// the first, and so on...).
CHeaderCtrl* pHeaderCtrl = m_myListCtrl.GetHeaderCtrl();

if (pHeaderCtrl != NULL)
{
    int  nColumnCount = pHeaderCtrl->GetItemCount();
    LPINT pnOrder = (LPINT) malloc(nColumnCount*sizeof(int));
    ASSERT(pnOrder != NULL);
    m_myListCtrl.GetColumnOrderArray(pnOrder, nColumnCount);

    int i, j, nTemp;
    for (i = 0, j = nColumnCount-1; i < j; i++, j--)
    {
        nTemp = pnOrder[i];
        pnOrder[i] = pnOrder[j];
        pnOrder[j] = nTemp;
    }

    m_myListCtrl.SetColumnOrderArray(nColumnCount, pnOrder);
    free(pnOrder);
}

CListCtrl::GetColumnWidth

レポート ビューまたはリスト ビューの列の幅を取得します。

int GetColumnWidth(int nCol) const;

パラメーター

nCol
幅を取得する列のインデックスを指定します。

戻り値

nColで指定された列の幅 (ピクセル単位)。

// Increase the column width of the second column by 20.
int nWidth = m_myListCtrl.GetColumnWidth(1);
m_myListCtrl.SetColumnWidth(1, 20 + nWidth);

CListCtrl::GetCountPerPage

リスト ビューまたはレポート ビューの場合に、リスト ビュー コントロールの表示領域に垂直方向に収まるアイテムの数を計算します。

int GetCountPerPage() const;

戻り値

リスト ビューまたはレポート ビューの場合にリスト ビュー コントロールの表示領域に垂直方向に収まるアイテムの数。

CListCtrl::GetTopIndex の例を参照してください。

CListCtrl::GetEditControl

リスト ビュー 項目のテキストを編集するために使用する編集コントロールのハンドルを取得します。

CEdit* GetEditControl() const;

戻り値

成功した場合は、アイテムテキストの編集に使用される CEdit オブジェクトへのポインター。それ以外の場合は NULL

// The string replacing the text in the edit control.
LPCTSTR lpszmyString = _T("custom label!");

// If possible, replace the text in the label edit control.
CEdit* pEdit = m_myListCtrl.GetEditControl();

if (pEdit != NULL)
{
    pEdit->SetWindowText(lpszmyString);
}

CListCtrl::GetEmptyText

現在のリスト ビュー コントロールが空の場合に表示する文字列を取得します。

CString GetEmptyText() const;

戻り値

コントロールが空の場合に表示するテキストを含む CString

解説

このメソッドは、Windows SDK で説明されている LVM_GETEMPTYTEXT メッセージを送信します。

CListCtrl::GetExtendedStyle

リスト ビュー コントロールの現在の拡張スタイルを取得します。

DWORD GetExtendedStyle();

戻り値

リスト ビュー コントロールで現在使用されている拡張スタイルの組み合わせ。 これらの拡張スタイルの説明的な一覧については、Windows SDK の「 Extended List View Styles 」の記事を参照してください。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_GetExtendedListViewStyle Win32 マクロの動作を実装します。

CListCtrl::SetExtendedStyle の例を参照してください。

CListCtrl::GetFirstSelectedItemPosition

リスト ビュー コントロールで最初に選択した項目の位置を取得します。

POSITION GetFirstSelectedItemPosition() const;

戻り値

反復またはオブジェクト ポインターの取得に使用できる POSITION 値。項目が選択されていない場合に NULL

次のコード サンプルは、この関数の使用方法を示しています。

POSITION pos = m_myListCtrl.GetFirstSelectedItemPosition();
if (pos == NULL)
{
    TRACE(_T("No items were selected!\n"));
}
else
{
    while (pos)
    {
        int nItem = m_myListCtrl.GetNextSelectedItem(pos);
        TRACE(_T("Item %d was selected!\n"), nItem);
        // you could do your own processing on nItem here
    }
}

CListCtrl::GetFocusedGroup

現在のリスト ビュー コントロールにキーボード フォーカスがあるグループを取得します。

int GetFocusedGroup() const;

戻り値

このようなグループがある場合は、状態が LVGS_FOCUSEDグループのインデックス。それ以外の場合は -1。

解説

このメソッドは、Windows SDK で説明されている LVM_GETFOCUSEDGROUP メッセージを送信します。 詳細については、LVGROUP構造体のstate メンバーのLVGS_FOCUSED値を参照してください。

CListCtrl::GetGroupCount

現在のリスト ビュー コントロール内のグループの数を取得します。

int GetGroupCount()const;

戻り値

リスト ビュー コントロール内のグループの数。

解説

このメソッドは、Windows SDK --> で説明されているLVM_GETGROUPCOUNT メッセージを送信します。

CListCtrl::GetGroupInfo

リスト ビュー コントロールの指定したグループの情報を取得します。

int GetGroupInfo(
    int iGroupId,
    PLVGROUP pgrp) const;

パラメーター

iGroupId
情報を取得するグループの識別子。

pgrp
指定したグループに関する情報を含む LVGROUP へのポインター。

戻り値

成功した場合はグループの ID を返し、それ以外の場合は -1 を返します。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_GETGROUPINFO メッセージの機能をエミュレートします。

CListCtrl::GetGroupInfoByIndex

現在のリスト ビュー コントロール内の指定したグループに関する情報を取得します。

BOOL GetGroupInfoByIndex(
    int iIndex,
    PLVGROUP pGroup) const;

パラメーター

iIndex
[in]グループの 0 から始まるインデックス。

pGroup
[out]iIndex パラメーターで指定されたグループに関する情報を受け取るLVGROUP構造体へのポインター。 呼び出し元は、 LVGROUP 構造体のメンバーを初期化する必要があります。 cbSize メンバーを構造体のサイズに設定し、取得する情報を指定するmask メンバーのフラグを設定します。

戻り値

TRUE このメソッドが成功した場合。それ以外の場合は FALSE

解説

このメソッドは、Windows SDK --> で説明されているLVM_GETGROUPINFOBYINDEX メッセージを送信します。

最初のコード例では、現在のリスト ビュー コントロールにアクセスするために使用される変数 ( m_listCtrl) を定義します。 この変数は次の例で使用されています。

public:
    // Variable used to access the list control.
    CListCtrl m_listCtrl;

次のコード例では、 GetGroupInfoByIndex メソッドを示します。 このコード例の前のセクションでは、レポート ビューに "ClientID" と "Grade" という 2 つの列を表示するリスト ビュー コントロールを作成しました。 次のコード例では、インデックスが 0 のグループに関する情報を取得します (そのようなグループが存在する場合)。

// GetGroupInfoByIndex
const int GROUP_HEADER_BUFFER_SIZE = 40;

// Initialize the structure
LVGROUP gInfo = {0};
gInfo.cbSize = sizeof(LVGROUP);
wchar_t wstrHeadGet[GROUP_HEADER_BUFFER_SIZE] = {0};
gInfo.cchHeader = GROUP_HEADER_BUFFER_SIZE;
gInfo.pszHeader = wstrHeadGet;
gInfo.mask = (LVGF_ALIGN | LVGF_STATE | LVGF_HEADER | LVGF_GROUPID);
gInfo.state = LVGS_NORMAL;
gInfo.uAlign  = LVGA_HEADER_LEFT;

BOOL bRet = m_listCtrl.GetGroupInfoByIndex( 0, &gInfo );
if (bRet == TRUE) {
    CString strHeader = CString( gInfo.pszHeader );
    CString str;
    str.Format(_T("Header: '%s'"), strHeader);
    AfxMessageBox(str, MB_ICONINFORMATION);
}
else
{
    AfxMessageBox(_T("No group information was retrieved."));
}

CListCtrl::GetGroupMetrics

グループのメトリックを取得します。

void GetGroupMetrics(PLVGROUPMETRICS pGroupMetrics) const;

パラメーター

pGroupMetrics
グループ メトリック情報を含む LVGROUPMETRICS へのポインター。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_GETGROUPMETRICS メッセージの機能をエミュレートします。

CListCtrl::GetGroupRect

現在のリスト ビュー コントロール内の指定したグループの外接する四角形を取得します。

BOOL GetGroupRect(
    int iGroupId,
    LPRECT lpRect,
    int iCoords = LVGGR_GROUP) const;

パラメーター

iGroupId
[in]グループを指定します。

lpRect
[入力、出力] RECT 構造体へのポインター。 このメソッドが成功した場合、構造体は、 iGroupIdで指定されたグループの四角形座標を受け取ります。

iCoords
[in]取得する四角形の座標を指定します。 次の値のいずれかを使用します。

  • LVGGR_GROUP - (既定値) 展開されたグループ全体の座標。
  • LVGGR_HEADER - ヘッダーのみの座標 (折りたたまれたグループ)。
  • LVGGR_SUBSETLINK - サブセット リンクのみの座標 (マークアップ サブセット)。

戻り値

TRUE このメソッドが成功した場合。それ以外の場合は FALSE

解説

呼び出し元は、pRect パラメーターが指すRECT構造体を割り当てる必要があります。

このメソッドは、Windows SDK で説明されている LVM_GETGROUPRECT メッセージを送信します。

最初のコード例では、現在のリスト ビュー コントロールにアクセスするために使用される変数 ( m_listCtrl) を定義します。 この変数は次の例で使用されています。

public:
    // Variable used to access the list control.
    CListCtrl m_listCtrl;

次のコード例では、 GetGroupRect メソッドを示します。 このコード例の前のセクションでは、レポート ビューに "ClientID" と "Grade" という 2 つの列を表示するリスト ビュー コントロールを作成しました。 次のコード例では、インデックスが 0 のグループの周囲に 3D 四角形を描画します (このようなグループが存在する場合)。

// GetGroupRect

// Get the graphics rectangle that surrounds group 0.
CRect rect;
BOOL bRet = m_listCtrl.GetGroupRect( 0, &rect, LVGGR_GROUP);
// Draw a blue rectangle around group 0.
if (bRet == TRUE) {
    m_listCtrl.GetDC()->Draw3dRect( &rect, RGB(0, 0, 255), RGB(0, 0, 255));
}
else {
    AfxMessageBox(_T("No group information was retrieved."), MB_ICONINFORMATION);
}

CListCtrl::GetGroupState

現在のリスト ビュー コントロール内の指定したグループの状態を取得します。

UINT GetGroupState(
    int iGroupId,
    DWORD dwMask) const;

パラメーター

iGroupId
[in]グループの 0 から始まるインデックス。

dwMask
[in]指定したグループに対して取得する状態値を指定するマスク。 詳細については、LVGROUP構造体のmask メンバーを参照してください。

戻り値

指定したグループに対して要求された状態。グループが見つからない場合は 0。

解説

戻り値は、dwMask パラメーターに対するビットごとの AND 演算の結果と、現在のリスト ビュー コントロールを表すLVGROUP構造体のstate メンバーの値です。

このメソッドは、Windows SDK で説明されている LVM_GETGROUPSTATE メッセージを送信します。 詳細については、 ListView_GetGroupState マクロを参照してください。

CListCtrl::GetHeaderCtrl

リスト ビュー コントロールのヘッダー コントロールを取得します。

CHeaderCtrl* GetHeaderCtrl();

戻り値

リスト ビュー コントロールによって使用されるヘッダー コントロールへのポインター。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_GetHeader Win32 マクロの動作を実装します。

CListCtrl::GetColumnOrderArray の例を参照してください。

CListCtrl::GetHotCursor

リスト ビュー コントロールに対してホット トラッキングが有効になっているときに使用されるカーソルを取得します。

HCURSOR GetHotCursor();

戻り値

リスト ビュー コントロールによって使用されている現在のホット カーソル リソースへのハンドル。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_GetHotCursor Win32 マクロの動作を実装します。 ホバー選択が有効な場合にのみ表示されるホット カーソルは、カーソルがリスト ビュー項目の上に移動したときに表示されます。 LVS_EX_TRACKSELECT拡張スタイルを設定することで、ホバー選択が有効になります。

// Set the hot cursor to be the system app starting cursor.
HCURSOR hCursor = ::LoadCursor(NULL, IDC_APPSTARTING);
m_myListCtrl.SetHotCursor(hCursor);
ASSERT(m_myListCtrl.GetHotCursor() == hCursor);

CListCtrl::GetHotItem

現在カーソルの下にあるリスト ビュー項目を取得します。

int GetHotItem();

戻り値

リスト ビュー コントロールの現在のホットアイテムのインデックス。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_GetHotItem Win32 マクロの動作を実装します。 ホット アイテムは、ホット トラッキング (およびホバー選択) が有効な場合に、現在選択されている項目として定義されます。

ホット トラッキングが有効になっている場合、ユーザーがリスト ビュー項目の上で一時停止すると、マウス ボタンを使用せずに項目ラベルが自動的に強調表示されます。

// Set the hot item to the first item only if no other item is
// highlighted.
if (m_myListCtrl.GetHotItem() == -1)
    m_myListCtrl.SetHotItem(0);

CListCtrl::GetHoverTime

リスト ビュー コントロールの現在のホバー時間を取得します。

DWORD GetHoverTime() const;

戻り値

選択する前にマウス カーソルを項目の上に置く必要がある遅延時間 (ミリ秒単位) を返します。 戻り値が -1 の場合、ホバー時間は既定のホバー時間です。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_GetHoverTime Win32 マクロの動作を実装します。

// If the hover time is the default set to 1 sec.
DWORD dwTime = m_myListCtrl.GetHoverTime();
if (dwTime == -1)
    m_myListCtrl.SetHoverTime(1000);

CListCtrl::GetImageList

リスト ビューアイテムの描画に使用されるイメージ リストのハンドルを取得します。

CImageList* GetImageList(int nImageList) const;

パラメーター

nImageList
取得するイメージ リストを指定する値。 次のいずれかの値を指定できます。

  • LVSIL_NORMAL 大きなアイコンを含む画像の一覧。
  • LVSIL_SMALL 小さいアイコンを含む画像の一覧。
  • LVSIL_STATE 状態イメージを含む画像リスト。

戻り値

リスト ビュー項目の描画に使用されるイメージ リストへのポインター。

ASSERT(m_myListCtrl.GetImageList(LVSIL_NORMAL) == NULL);
m_myListCtrl.SetImageList(&m_lcImageList, LVSIL_NORMAL);
ASSERT(m_myListCtrl.GetImageList(LVSIL_NORMAL) == &m_lcImageList);

CListCtrl::GetInsertMark

挿入マークの現在位置を取得します。

BOOL GetInsertMark(LPLVINSERTMARK plvim) const;

パラメーター

plvim
挿入マークの情報を含む LVINSERTMARK 構造体へのポインター。

戻り値

成功した場合は TRUE を返し、それ以外の場合は FALSE を返します。 FALSEは、LVINSERTMARK 構造体のcbSize メンバーのサイズが構造体の実際のサイズと等しくない場合に返されます。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_GETINSERTMARK メッセージの機能をエミュレートします。

CListCtrl::GetInsertMarkColor

挿入マークの現在の色を取得します。

COLORREF GetInsertMarkColor() const;

戻り値

カーソルの色を含む COLORREF 構造体を返します。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_GETINSERTMARKCOLOR メッセージの機能をエミュレートします。

CListCtrl::GetInsertMarkRect

挿入ポイントを囲む矩形を取得します。

int GetInsertMarkRect(LPRECT pRect) const;

パラメーター

pRect
挿入ポイントをバインドする四角形の座標を含む RECT 構造体へのポインター。

戻り値

次の値のいずれか。

  • 0 カーソルが見つかりません。
  • 1 カーソルが見つかりました。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_GETINSERTMARKRECT メッセージの機能をエミュレートします。

CListCtrl::GetItem

リスト ビュー アイテムの属性の一部またはすべてを取得します。

BOOL GetItem(LVITEM* pItem) const;

パラメーター

pItem
アイテムの属性を受け取る LVITEM 構造体へのポインター。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

LVITEM構造体は、リスト ビュー アイテムの属性を指定または受信します。

CListCtrl::GetItemCount

リスト ビュー コントロール内の項目の数を取得します。

int GetItemCount() const;

戻り値

リスト ビュー コントロール内の項目の数。

CListCtrl::DeleteItem の例を参照してください。

CListCtrl::GetItemData

nItemで指定された項目に関連付けられている 32 ビットアプリケーション固有の値 (x64 用にコンパイルしている場合は 64 ビット) を取得します。

DWORD_PTR GetItemData(int nItem) const;

パラメーター

nItem
データを取得するリスト アイテムのインデックス。

戻り値

指定した項目に関連付けられている 32 ビット (x64 用にコンパイルする場合は 64 ビット) のアプリケーション固有の値。

解説

この値は、Windows SDK で説明されているように、LVITEM構造体のlParam メンバーです

// If any item's data is equal to zero then reset it to -1.
for (int i=0; i < m_myListCtrl.GetItemCount(); i++)
{
    if (m_myListCtrl.GetItemData(i) == 0)
    {
        m_myListCtrl.SetItemData(i, (DWORD) -1);
    }
}

CListCtrl::GetItemIndexRect

現在のリスト ビュー コントロールのサブ項目のすべてまたは一部の外接する四角形を取得します。

BOOL GetItemIndexRect(
    PLVITEMINDEX pItemIndex,
    int iColumn,
    int rectType,
    LPRECT pRect) const;

パラメーター

pItemIndex
[in]サブ項目の親項目の LVITEMINDEX 構造体へのポインター。 呼び出し元は、 LVITEMINDEX 構造体のメンバーの割り当てと設定を担当します。 このパラメーターを NULL とすることはできません。

iColumn
[in]コントロール内の列の 0 から始まるインデックス。

rectType
[in]外接する四角形が取得されるリスト ビューサブ項目の一部。 次のいずれかの値を指定します。

  • LVIR_BOUNDS - アイコンとラベルを含むサブ項目全体の外接する四角形を返します。
  • LVIR_ICON - サブ項目のアイコンまたは小さいアイコンの外接する四角形を返します。
  • LVIR_LABEL - サブ項目テキストの外接する四角形を返します。

pRect
[out]サブ項目の外接する四角形に関する情報を受け取る RECT 構造体へのポインター。 呼び出し元は、 RECT 構造体の割り当てを担当します。 このパラメーターを NULL とすることはできません。

戻り値

TRUE このメソッドが成功した場合。それ以外の場合は FALSE

解説

このメソッドは、Windows SDK で説明されている LVM_GETITEMINDEXRECT メッセージを送信します。 詳細については、「マクロのListView_GetItemIndexRect」を参照してください。

最初のコード例では、現在のリスト ビュー コントロールにアクセスするために使用される変数 ( m_listCtrl) を定義します。 この変数は次の例で使用されています。

public:
    // Variable used to access the list control.
    CListCtrl m_listCtrl;

次のコード例では、 GetGroupRect メソッドを示します。 このコード例を入力する前に、"ClientID" と "Grade" という 2 つの列をレポート ビューに表示するリスト ビュー コントロールを作成しました。 次のコード例では、両方の列の 2 番目のサブ項目の周囲に 3D 四角形を描画します。

// GetItemIndexRect
// Get the rectangle that bounds the second item in the first group.
LVITEMINDEX lvItemIndex;
lvItemIndex.iGroup = 0;
lvItemIndex.iItem = 1;
CRect rect;
BOOL bRet = m_listCtrl.GetItemIndexRect(
    &lvItemIndex, 0, LVIR_BOUNDS, &rect);

// Draw a red rectangle around the item.
m_listCtrl.GetDC()->Draw3dRect( &rect, RGB(255, 0, 0), RGB(255, 0, 0) );

CListCtrl::GetItemPosition

リスト ビュー アイテムの位置を取得します。

BOOL GetItemPosition(
    int nItem,
    LPPOINT lpPoint) const;

パラメーター

nItem
位置を取得するアイテムのインデックス。

lpPoint
ビュー座標でアイテムの左上隅の位置を受け取る POINT 構造体のアドレス。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

POINT pt;

// Move all items in the list control 100 pixels to the right.
UINT i, nCount = m_myListCtrl.GetItemCount();

for (i=0; i < nCount; i++)
{
    m_myListCtrl.GetItemPosition(i, &pt);
    pt.x += 100;
    m_myListCtrl.SetItemPosition(i, pt);
}

CListCtrl::GetItemRect

現在のビューのアイテムのすべてまたは一部の外接矩形を取得します。

BOOL GetItemRect(
    int nItem,
    LPRECT lpRect,
    UINT nCode) const;

パラメーター

nItem
位置を取得するアイテムのインデックス。

lpRect
外接する四角形を受け取る RECT 構造体のアドレス。

nCode
外接する四角形を取得するリスト ビュー項目の一部。 次のいずれかの値を指定できます。

  • LVIR_BOUNDS アイコンとラベルを含む、項目全体の外接する四角形を返します。
  • LVIR_ICON アイコンまたは小さいアイコンの外接する四角形を返します。
  • LVIR_LABEL 項目テキストの外接する四角形を返します。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

// OnClick is the handler for the NM_CLICK notification
void CListCtrlDlg::OnClick(NMHDR* pNMHDR, LRESULT* pResult)
{
    UNREFERENCED_PARAMETER(pResult);
    LPNMITEMACTIVATE pia = (LPNMITEMACTIVATE)pNMHDR;

    // Get the current mouse location and convert it to client
    // coordinates.
    CPoint pos( ::GetMessagePos() );
    ScreenToClient(&pos);

    // Get indexes of the first and last visible items in
    // the listview control.
    int index = m_myListCtrl.GetTopIndex();
    int last_visible_index = index + m_myListCtrl.GetCountPerPage();
    if (last_visible_index > m_myListCtrl.GetItemCount())
        last_visible_index = m_myListCtrl.GetItemCount();

    // Loop until number visible items has been reached.
    while (index <= last_visible_index)
    {
        // Get the bounding rectangle of an item. If the mouse
        // location is within the bounding rectangle of the item,
        // you know you have found the item that was being clicked.
        CRect r;
        m_myListCtrl.GetItemRect(index, &r, LVIR_BOUNDS);
        if (r.PtInRect(pia->ptAction))
        {
            UINT flag = LVIS_SELECTED | LVIS_FOCUSED;
            m_myListCtrl.SetItemState(index, flag, flag);
            break;
        }

        // Get the next item in listview control.
        index++;
    }
}

CListCtrl::GetItemSpacing

現在のリスト ビュー コントロール内の項目間の間隔を計算します。

BOOL GetItemSpacing(
    BOOL fSmall,
    int* pnHorzSpacing,
    int* pnVertSpacing) const;

パラメーター

fSmall
[in]項目の間隔を取得するビュー。 小さいアイコン ビューの場合は TRUE を指定し、アイコン ビューには FALSE を指定します。

pnHorzSpacing
[out]項目間の水平方向の間隔を格納します。

pnVertSpacing
[out]項目間の垂直方向の間隔を格納します。

戻り値

TRUE このメソッドが成功した場合。それ以外の場合は FALSE

解説

このメソッドは、Windows SDK で説明されている LVM_GETITEMSPACING メッセージを送信します。

CListCtrl::GetItemState

リスト ビュー アイテムの状態を取得します。

UINT GetItemState(
    int nItem,
    UINT nMask) const;

パラメーター

nItem
状態を取得するアイテムのインデックス。

nMask
返す項目の状態フラグを指定するマスク。

戻り値

指定したリスト ビュー アイテムの状態フラグ。

解説

アイテムの状態は、Windows SDK で説明されているように、LVITEM構造体のstate メンバーによって指定されます。 項目の状態を指定または変更すると、 stateMask メンバーは変更する状態ビットを指定します。

CListCtrl::GetTopIndex の例を参照してください。

CListCtrl::GetItemText

リスト ビュー項目またはサブ項目のテキストを取得します。

int GetItemText(
    int nItem,
    int nSubItem,
    LPTSTR lpszText,
    int nLen) const;

CString GetItemText(
    int nItem,
    int nSubItem) const;

パラメーター

nItem
テキストを取得するアイテムのインデックス。

nSubItem
テキストを取得するサブ項目を指定します。

lpszText
項目テキストを受け取る文字列へのポインター。

nLen
lpszTextが指すバッファーの長さ。

戻り値

intを返すバージョンは、取得した文字列の長さを返します。

CStringを返すバージョンは、項目のテキストを返します。

解説

nSubItemが 0 の場合、この関数は項目ラベルを取得します。nSubItemが 0 以外の場合は、サブ項目のテキストを取得します。 サブ項目引数の詳細については、Windows SDK の LVITEM 構造の説明を参照してください。

CListCtrl::GetNextItem

指定したプロパティを持ち、指定したアイテムとのリレーションシップを持つリスト ビュー アイテムを検索します。

int GetNextItem(
    int nItem,
    int nFlags) const;

パラメーター

nItem
検索を開始する項目のインデックス。指定したフラグに一致する最初の項目を検索する場合は -1。 指定した項目自体が検索から除外されます。

nFlags
指定した項目に対する要求された項目の幾何学的関係と、要求された項目の状態。 ジオメトリの関係には、次のいずれかの値を指定できます。

  • LVNI_ABOVE 指定した項目の上にある項目を検索します。
  • LVNI_ALL 後続の項目をインデックスで検索します (既定値)。
  • LVNI_BELOW 指定した項目の下にある項目を検索します。
  • LVNI_TOLEFT 指定した項目の左側にある項目を検索します。
  • LVNI_TORIGHT 指定した項目の右側にある項目を検索します。

状態は 0 にすることも、次の値の 1 つ以上にすることもできます。

  • LVNI_DROPHILITED 項目には、 LVIS_DROPHILITED 状態フラグが設定されています。
  • LVNI_FOCUSED 項目には、 LVIS_FOCUSED 状態フラグが設定されています。
  • LVNI_SELECTED 項目には、 LVIS_SELECTED 状態フラグが設定されています。

アイテムに指定した状態フラグがすべて設定されていない場合、検索は次の項目で続行されます。

戻り値

成功した場合は次の項目のインデックス。それ以外の場合は -1。

CListCtrl::GetNextItemIndex

指定したプロパティ セットを持つ現在のリスト ビュー コントロール内の項目のインデックスを取得します。

BOOL GetNextItemIndex(
    PLVITEMINDEX pItemIndex,
    int nFlags) const;

パラメーター

pItemIndex
[入力、出力]検索が開始される項目を記述する LVITEMINDEX 構造体へのポインター。 nFlags パラメーターのフラグに一致する最初の項目を検索する場合は -1。 このメソッドが成功した場合、 LVITEMINDEX 構造体は検索によって見つかった項目を記述します。

nFlags
[in]検索の実行方法を指定するフラグのビットごとの組み合わせ (OR)。 検索は、ターゲット 項目のインデックス、状態、または外観、または pItemIndex パラメーターで指定された項目に対するターゲット アイテムの物理的な位置によって異なります。 詳細については、LVM_GETNEXTITEMINDEX メッセージの flags パラメーターを参照してください。

戻り値

TRUE このメソッドが成功した場合。それ以外の場合は FALSE

解説

呼び出し元は、pItemIndex パラメーターが指すLVITEMINDEX構造体のメンバーの割り当てと設定を行います。

このメソッドは、Windows SDK で説明されている LVM_GETNEXTITEMINDEX メッセージを送信します。

CListCtrl::GetNextSelectedItem

posによって識別されるリスト アイテムのインデックスを取得し、posを POSITION 値に設定します。

int GetNextSelectedItem(POSITION& pos) const;

パラメーター

pos
GetNextSelectedItemまたはGetFirstSelectedItemPositionに対する前回の呼び出しによって返された POSITION 値への参照。 値は、この呼び出しによって次の位置に更新されます。

戻り値

posによって識別されるリスト アイテムのインデックス。

解説

GetFirstSelectedItemPositionの呼び出しで初期位置を確立する場合は、前方反復ループでGetNextSelectedItemを使用できます。

POSITION値が有効であることを確認する必要があります。 無効な場合は、Microsoft Foundation クラス ライブラリのデバッグ バージョンがアサートされます。

次のコード サンプルは、この関数の使用方法を示しています。

POSITION pos = m_myListCtrl.GetFirstSelectedItemPosition();
if (pos == NULL)
{
    TRACE(_T("No items were selected!\n"));
}
else
{
    while (pos)
    {
        int nItem = m_myListCtrl.GetNextSelectedItem(pos);
        TRACE(_T("Item %d was selected!\n"), nItem);
        // you could do your own processing on nItem here
    }
}

CListCtrl::GetNumberOfWorkAreas

リスト ビュー コントロールの現在の作業領域の数を取得します。

UINT GetNumberOfWorkAreas() const;

戻り値

現時点では使用されません。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_GetNumberOfWorkAreas Win32 マクロの動作を実装します。

UINT i, uCount = m_myListCtrl.GetNumberOfWorkAreas();
LPRECT lpRects = (LPRECT) malloc(uCount*sizeof(RECT));

if (lpRects != NULL)
{
    // Dump all of the work area dimensions.
    m_myListCtrl.GetWorkAreas(uCount, lpRects);

    for (i=0; i < uCount; i++)
    {
        TRACE(_T("Work area %d; left = %d, top = %d, right = %d, ")
            _T("bottom = %d\r\n"),
            i, lpRects[i].left, lpRects[i].top, lpRects[i].right,
            lpRects[i].bottom);
    }

    free(lpRects);
}
else
{
    TRACE(_T("Couldn't allocate enough memory!"));
}

CListCtrl::GetOutlineColor

リスト ビュー コントロールの境界線の色を取得します。

COLORREF GetOutlineColor() const;

戻り値

アウトラインの色を含む COLORREF 構造体を返します。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_GETOUTLINECOLOR メッセージの機能をエミュレートします。

CListCtrl::GetOrigin

リスト ビュー コントロールの現在のビューの原点を取得します。

BOOL GetOrigin(LPPOINT lpPoint) const;

パラメーター

lpPoint
ビューの配信元を受け取る POINT 構造体のアドレス。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。 ただし、コントロールがレポート ビューにある場合、戻り値は常に 0 になります。

CListCtrl::GetSelectedColumn

リスト コントロールで現在選択されている列のインデックスを取得します。

UINT GetSelectedColumn() const;

戻り値

選択した列のインデックス。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_GETSELECTEDCOLUMN メッセージの機能をエミュレートします。

CListCtrl::GetSelectedCount

リスト ビュー コントロールで選択されている項目の数を取得します。

UINT GetSelectedCount() const;

戻り値

リスト ビュー コントロールで選択した項目の数。

UINT i, uSelectedCount = m_myListCtrl.GetSelectedCount();
int  nItem = -1;

// Update all of the selected items.
if (uSelectedCount > 0)
{
    for (i=0; i < uSelectedCount; i++)
    {
        nItem = m_myListCtrl.GetNextItem(nItem, LVNI_SELECTED);
        ASSERT(nItem != -1);
        m_myListCtrl.Update(nItem);
    }
}

CListCtrl::GetSelectionMark

リスト ビュー コントロールの選択マークを取得します。

int GetSelectionMark();

戻り値

0 から始まる選択マーク。選択マークがない場合は -1。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_GetSelectionMark Win32 マクロの動作を実装します。

// Set the selection mark to the first item only if no other item is
// selected.
if (m_myListCtrl.GetSelectionMark() == -1)
    m_myListCtrl.SetSelectionMark(0);

CListCtrl::GetStringWidth

指定されたすべての文字列を表示するために必要な最小列幅を決定します。

int GetStringWidth(LPCTSTR lpsz) const;

パラメーター

lpsz
幅を決定する null で終わる文字列のアドレス。

戻り値

lpszが指す文字列の幅 (ピクセル単位)。

解説

返される幅は、コントロールの現在のフォントと列の余白を考慮しますが、小さいアイコンの幅は考慮しません。

CString strColumn;
int nWidth;

// Insert six columns in the list view control. Make the width of
// the column be the width of the column header plus 50%.
for (int i = 0; i < 6; i++)
{
    strColumn.Format(_T("column %d"), i);
    nWidth = 3*m_myListCtrl.GetStringWidth(strColumn)/2;
    m_myListCtrl.InsertColumn(i, strColumn, LVCFMT_LEFT, nWidth);
}

CListCtrl::GetSubItemRect

リスト ビュー コントロール内の項目の外接する四角形を取得します。

BOOL GetSubItemRect(
    int iItem,
    int iSubItem,
    int nArea,
    CRect& ref);

パラメーター

iItem
サブ項目の親項目のインデックス。

iSubItem
サブ項目の 1 から始まるインデックス。

nArea
取得する外接する四角形 (リスト ビュー サブ項目の) の部分を決定します。 外接する四角形の部分 (アイコン、ラベル、またはその両方) は、ビットごとの OR 演算子を次の 1 つ以上の値に適用して指定します。

  • LVIR_BOUNDS アイコンとラベルを含む、項目全体の外接する四角形を返します。
  • LVIR_ICON アイコンまたは小さいアイコンの外接する四角形を返します。
  • LVIR_LABEL アイコンとラベルを含む、項目全体の外接する四角形を返します。 これは、 LVIR_BOUNDSと同じです。

ref
サブ項目の外接する四角形の座標を含む CRect オブジェクトへの参照。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_GetSubItemRect Win32 マクロの動作を実装します。

CListCtrl::GetTextBkColor

リスト ビュー コントロールのテキストの背景色を取得します。

COLORREF GetTextBkColor() const;

戻り値

RGB 色を指定するために使用される 32 ビット値。

CListCtrl::SetTextBkColor の例を参照してください。

CListCtrl::GetTextColor

リスト ビュー コントロールのテキストの色を取得します。

COLORREF GetTextColor() const;

戻り値

RGB 色を指定するために使用される 32 ビット値。

CListCtrl::SetTextColor の例を参照してください。

CListCtrl::GetTileInfo

リスト ビュー コントロール内のタイルに関する情報を取得します。

BOOL GetTileInfo(PLVTILEINFO plvti) const;

パラメーター

plvti
タイル情報を受け取る LVTILEINFO 構造体へのポインター。

戻り値

戻り値は使用されません。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_GETTILEINFO メッセージの機能をエミュレートします。

CListCtrl::GetTileViewInfo

タイル ビューのリスト ビュー コントロールに関する情報を取得します。

BOOL GetTileViewInfo(PLVTILEVIEWINFO ptvi) const;

パラメーター

ptvi
取得した情報を受け取る LVTILEVIEWINFO 構造体へのポインター。

戻り値

戻り値は使用されません。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_GETTILEVIEWINFO メッセージの機能をエミュレートします。

CListCtrl::GetToolTips

リスト ビュー コントロールがツールヒントの表示に使用するツールヒント コントロールを取得します。

CToolTipCtrl* GetToolTips() const;

戻り値

リスト コントロールによって使用される CToolTipCtrl オブジェクトへのポインター。 Createメンバー関数がスタイル LVS_NOTOOLTIPSを使用する場合、ヒントは使用されません。NULL が返されます。

解説

このメンバー関数では、Windows SDK で説明されているように、Win32 メッセージ LVM_GETTOOLTIPS の動作が実装されます。 GetToolTipsの MFC 実装は、ツールヒント コントロールへのハンドルではなく、リスト コントロールによって使用されるCToolTipCtrl オブジェクトを返します。

CToolTipCtrl* pTip = m_myListCtrl.GetToolTips();
if (NULL != pTip)
{
    pTip->UpdateTipText(_T("I'm a list view!"), &m_myListCtrl,
        IDD_MYLISTCTRL);
}

CListCtrl::GetTopIndex

リスト ビューまたはレポート ビューの場合に、最上位に表示されるアイテムのインデックスを取得します。

int GetTopIndex() const;

戻り値

最上位に表示される項目のインデックス。

// Make sure the focus is set to the list view control.
m_myListCtrl.SetFocus();

// Select all of the items that are completely visible.
int n = m_myListCtrl.GetTopIndex();
int nLast = n + m_myListCtrl.GetCountPerPage();

for (; n < nLast; n++)
{
    m_myListCtrl.SetItemState(n, LVIS_SELECTED, LVIS_SELECTED);
    ASSERT(m_myListCtrl.GetItemState(n, LVIS_SELECTED) == LVIS_SELECTED);
}

CListCtrl::GetView

リスト ビュー コントロールのビューを取得します。

DWORD GetView() const;

戻り値

リスト ビュー コントロールの現在のビュー。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_GETVIEW メッセージの機能をエミュレートします。

CListCtrl::GetViewRect

リスト ビュー コントロール内のすべての項目の外接する四角形を取得します。

BOOL GetViewRect(LPRECT lpRect) const;

パラメーター

lpRect
RECT構造体のアドレス。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

リスト ビューは、アイコン ビューまたは小さいアイコン ビューである必要があります。

CListCtrl::GetWorkAreas

リスト ビュー コントロールの現在の作業領域を取得します。

void GetWorkAreas(
    int nWorkAreas,
    LPRECT pRect) const;

パラメーター

nWorkAreas
pRect配列に含まれるRECT構造体の数。

pRect
リスト ビュー コントロールの作業領域を受け取る RECT 構造体 (または CRect オブジェクト) の配列へのポインター。 これらの構造体の値はクライアント座標にあります。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_GetWorkAreas Win32 マクロの動作を実装します。

CListCtrl::GetNumberOfWorkAreas の例を参照してください。

CListCtrl::HasGroup

リスト ビュー コントロールに指定したグループがあるかどうかを判断します。

BOOL HasGroup(int iGroupId) const;

パラメーター

iGroupId
要求されるグループの識別子。

戻り値

正常に終了した場合は、TRUE を返します。それ以外の場合は、FALSE を返します。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_HASGROUP メッセージの機能をエミュレートします。

CListCtrl::HitTest

指定した位置にあるリスト ビュー 項目 (存在する場合) を決定します。

int HitTest(LVHITTESTINFO* pHitTestInfo) const;

int HitTest(
    CPoint pt,
    UINT* pFlags = NULL) const;

パラメーター

pHitTestInfo
ヒット テストの位置を格納し、ヒット テストの結果に関する情報を受け取る LVHITTESTINFO 構造体のアドレス。

pt
テスト対象のポイント。

pFlags
テストの結果に関する情報を受け取る整数へのポインター。 Windows SDK のLVHITTESTINFO構造のflags メンバーの説明を参照してください。

戻り値

pHitTestInfoで指定された位置にある項目のインデックス 。存在する場合は -1。それ以外の場合は -1。

解説

構造体のflag メンバーのLVHT_ABOVELVHT_BELOWLVHT_TOLEFT、およびLVHT_TORIGHTの値を使用して、リスト ビュー コントロールの内容をスクロールするかどうかを決定できます。 これらのフラグのうち 2 つを組み合わせることができます。たとえば、位置がクライアント領域の上と左側にある場合などです。

構造体のflag メンバーのLVHT_ONITEM値をテストして、特定の位置がリスト ビューアイテムの上にあるかどうかを判断できます。 この値は、構造体のflag メンバーのLVHT_ONITEMICONLVHT_ONITEMLABEL、およびLVHT_ONITEMSTATEICON値に対するビットごとの OR 演算です。

void CListCtrlDlg::OnRClick(NMHDR* pNMHDR, LRESULT* pResult)
{
    LPNMITEMACTIVATE pia = (LPNMITEMACTIVATE)pNMHDR;
    CPoint point(pia->ptAction);

    // Select the item the user clicked on.
    UINT uFlags;
    int nItem = m_myListCtrl.HitTest(point, &uFlags);

    if (uFlags & LVHT_ONITEMLABEL)
    {
        m_myListCtrl.SetItem(nItem, 0, LVIF_STATE, NULL, 0, LVIS_SELECTED,
            LVIS_SELECTED, 0);
    }

    *pResult = 0;
}

CListCtrl::InsertColumn

リスト ビュー コントロールに新しい列を挿入します。

int InsertColumn(
    int nCol,
    const LVCOLUMN* pColumn);

int InsertColumn(
    int nCol,
    LPCTSTR lpszColumnHeading,
    int nFormat = LVCFMT_LEFT,
    int nWidth = -1,
    int nSubItem = -1);

パラメーター

nCol
新しい列のインデックス。

pColumn
新しい列の属性を含む LVCOLUMN 構造体のアドレス。

lpszColumnHeading
列の見出しを含む文字列のアドレス。

nFormat
列の配置を指定する整数。 LVCFMT_LEFTLVCFMT_RIGHT、またはLVCFMT_CENTERのいずれかの値を指定できます。

nWidth
列の幅 (ピクセル単位)。 このパラメーターが -1 の場合、列の幅は設定されません。

nSubItem
列に関連付けられているサブ項目のインデックス。 このパラメーターが -1 の場合、サブ項目は列に関連付けされません。

戻り値

成功した場合は新しい列のインデックス。それ以外の場合は -1。

解説

リスト ビュー コントロールの左端の列は左揃えである必要があります。

LVCOLUMN構造体には、レポート ビューの列の属性が含まれています。 また、列に関する情報を受け取るためにも使用されます。 この構造については、Windows SDK で説明します。

CListCtrl::InsertGroup

リスト ビュー コントロールにグループを挿入します。

LRESULT InsertGroup(
    int index,
    PLVGROUP pgrp);

パラメーター

index
グループを挿入する項目のインデックス。

pgrp
追加するグループを含む LVGROUP 構造体へのポインター。

戻り値

グループが追加された項目のインデックスを返します。操作が失敗した場合は -1 を返します。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_INSERTGROUP メッセージの機能をエミュレートします。

CListCtrl::InsertGroupSorted

指定したグループをグループの順序付きリストに挿入します。

LRESULT InsertGroupSorted(PLVINSERTGROUPSORTED pStructInsert);

パラメーター

pStructInsert
挿入するグループを含む LVINSERTGROUPSORTED 構造体へのポインター。

戻り値

戻り値は使用されません。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_INSERTGROUPSORTED メッセージの機能をエミュレートします。

CListCtrl::InsertItem

リスト ビュー コントロールに項目を挿入します。

int InsertItem(const LVITEM* pItem);

int InsertItem(
    int nItem,
    LPCTSTR lpszItem);

int InsertItem(
    int nItem,
    LPCTSTR lpszItem,
    int nImage);

int InsertItem(
    UINT nMask,
    int nItem,
    LPCTSTR lpszItem,
    UINT nState,
    UINT nStateMask,
    int nImage,
    LPARAM lParam);

パラメーター

pItem
Windows SDK で説明されているように、項目の属性を指定する LVITEM 構造体へのポインター。

nItem
挿入する項目のインデックス。

lpszItem
アイテムのラベルを含む文字列のアドレス。アイテムがコールバック項目の場合は LPSTR_TEXTCALLBACK 。 コールバック項目の詳細については、 CListCtrl::GetCallbackMaskを参照してください。

nImage
アイテムのイメージのインデックス。項目がコールバック項目の場合は I_IMAGECALLBACK 。 コールバック項目の詳細については、 CListCtrl::GetCallbackMaskを参照してください。

nMask
nMask パラメーターは、パラメーターとして渡される項目属性を指定します。 Windows SDK の LVITEM Structure で説明されている 1 つ以上のマスク値を指定できます。 有効な値は、ビットごとの OR 演算子と組み合わせることができます。

nState
アイテムの状態、状態イメージ、オーバーレイ イメージを示します。 詳細については、有効なフラグの一覧については、Windows SDK の LVITEM 構造 および List-View Item States に関するトピックを参照してください。

nStateMask
状態メンバーのどのビットを取得または変更するかを示します。 詳細については、Windows SDK の LVITEM 構造 を参照してください。

lParam
項目に関連付けられている 32 ビットのアプリケーション固有の値 (x64 用にコンパイルする場合は 64 ビット)。 このパラメーターを指定する場合は、 nMask 属性 LVIF_PARAMを設定する必要があります。

戻り値

成功した場合は新しい項目のインデックス、それ以外の場合は -1。

解説

このメソッドを呼び出すと、 LVM_INSERTITEM メッセージがコントロール ウィンドウに送信される可能性があります。 コントロールに関連付けられているメッセージ ハンドラーは、( LVS_OWNERDRAW などのウィンドウ スタイルの使用など) 特定の条件下で項目のテキストを設定できない場合があります。 これらの条件の詳細については、Windows SDK の LVM_INSERTITEM を参照してください。

CString strText;
int nColumnCount = m_myListCtrl.GetHeaderCtrl()->GetItemCount();

// Insert 10 items in the list view control.
for (int i = 0; i < 10; i++)
{
    strText.Format(TEXT("item %d"), i);

    // Insert the item, select every other item.
    m_myListCtrl.InsertItem(LVIF_TEXT | LVIF_STATE, i, strText,
        (i % 2) == 0 ? LVIS_SELECTED : 0, LVIS_SELECTED, 0, 0);

    // Initialize the text of the subitems.
    for (int j = 1; j < nColumnCount; j++)
    {
        strText.Format(TEXT("sub-item %d %d"), i, j);
        m_myListCtrl.SetItemText(i, j, strText);
    }
}

CListCtrl::InsertMarkHitTest

指定したポイントに最も近い挿入ポイントを取得します。

int InsertMarkHitTest(
    LPPOINT pPoint,
    LPLVINSERTMARK plvim) const;

パラメーター

pPoint
リスト コントロールのクライアント領域を基準にしたヒット テスト座標を含む POINT 構造体へのポインター。

plvim
ポイント パラメーターで定義された座標に最も近い挿入ポイントを指定する LVINSERTMARK 構造体へのポインター。

戻り値

指定したポイントに最も近い挿入ポイント。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_INSERTMARKHITTEST メッセージの機能をエミュレートします。

CListCtrl::IsGroupViewEnabled

リスト ビュー コントロールに対してグループ ビューを有効にするかどうかを指定します。

BOOL IsGroupViewEnabled() const;

戻り値

グループ ビューが有効になっている場合は TRUE を返し、それ以外の場合は FALSE 返します。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_ISGROUPVIEWENABLED メッセージの機能をエミュレートします。

CListCtrl::IsItemVisible

現在のリスト ビュー コントロール内の指定した項目が表示されるかどうかを示します。

BOOL IsItemVisible(int index) const;

パラメーター

index
[in]現在のリスト ビュー コントロール内の項目の 0 から始まるインデックス。

戻り値

TRUE 指定した項目が表示される場合は 〗。それ以外の場合は FALSE

解説

このメソッドは、Windows SDK で説明されている LVM_ISITEMVISIBLE メッセージを送信します。

CListCtrl::MapIDToIndex

現在のリスト ビュー コントロール内の項目の一意の ID をインデックスにマップします。

UINT MapIDToIndex(UINT id) const;

パラメーター

id
[in]項目の一意の ID。

戻り値

指定した ID の現在のインデックス。

解説

リスト ビュー コントロールは、インデックスによって項目を内部的に追跡します。 これは、コントロールの有効期間中にインデックスが変更される可能性があるため、問題が発生する可能性があります。 リスト ビュー コントロールでは、アイテムの作成時に ID を持つ項目にタグを付けることができます。この ID を使用すると、リスト ビュー コントロールの有効期間中に一意性を保証できます。

マルチスレッド環境では、インデックスは、バックグラウンド スレッドではなく、リスト ビュー コントロールをホストするスレッドでのみ保証されます。

このメソッドは、Windows SDK で説明されている LVM_MAPIDTOINDEX メッセージを送信します。

CListCtrl::MapIndexToID

現在のリスト ビュー コントロール内の項目のインデックスを一意の ID にマップします。

UINT MapIndexToID(UINT index) const;

パラメーター

index
[in]項目の 0 から始まるインデックス。

戻り値

指定した項目の一意の ID。

解説

リスト ビュー コントロールは、インデックスによって項目を内部的に追跡します。 これは、コントロールの有効期間中にインデックスが変更される可能性があるため、問題が発生する可能性があります。 リスト ビュー コントロールでは、アイテムの作成時に ID を持つ項目にタグを付けることができます。 この ID を使用すると、リスト ビュー コントロールの有効期間中に特定の項目にアクセスできます。

マルチスレッド環境では、インデックスは、バックグラウンド スレッドではなく、リスト ビュー コントロールをホストするスレッドでのみ保証されます。

このメソッドは、Windows SDK で説明されている LVM_MAPINDEXTOID メッセージを送信します。

最初のコード例では、現在のリスト ビュー コントロールにアクセスするために使用される変数 ( m_listCtrl) を定義します。 この変数は次の例で使用されています。

public:
    // Variable used to access the list control.
    CListCtrl m_listCtrl;

次のコード例では、 MapIndexToID メソッドを示します。 このコード例の前のセクションでは、レポート ビューに "ClientID" と "Grade" という 2 つの列を表示するリスト ビュー コントロールを作成しました。 次の例では、各リスト ビュー項目のインデックスを識別番号にマップし、各識別番号のインデックスを取得します。 最後に、元のインデックスが取得されたかどうかを報告します。

// MapIndexToID
int iCount = m_listCtrl.GetItemCount();
UINT nId = 0;
UINT nIndex = 0;
for (int iIndexOriginal = 0; iIndexOriginal < iCount; iIndexOriginal++)
{
    // Map index to ID.
    nId = m_listCtrl.MapIndexToID((UINT)iIndexOriginal);

    // Map ID to index.
    nIndex = m_listCtrl.MapIDToIndex(nId);

    if (nIndex != (UINT)(iIndexOriginal))
    {
        CString str;
        str.Format(_T("Mapped index (%d) is not equal to original index (%d)"),
            nIndex, (UINT)(iIndexOriginal));
        AfxMessageBox(str);
        return;
    }
}
AfxMessageBox(_T("The mapped indexes and original indexes are equal."),
    MB_ICONINFORMATION);

CListCtrl::MoveGroup

指定したグループを、リスト ビュー コントロールの指定した 0 から始まるインデックスに移動します。

LRESULT MoveGroup(
    int iGroupId,
    int toIndex);

パラメーター

iGroupId
移動するグループの識別子。

toIndex
グループを移動する 0 から始まるインデックス。

戻り値

戻り値は使用されません。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_MOVEGROUP メッセージの機能をエミュレートします。

CListCtrl::MoveItemToGroup

指定した項目を指定したグループに移動します。

void MoveItemToGroup(
    int idItemFrom,
    int idGroupTo);

パラメーター

idItemFrom
[in]移動する項目のインデックス。

idGroupTo
[in]アイテムの移動先となるグループの識別子。

解説

Note

このメソッドは現在実装されていません。

このメソッドは、Windows SDK で説明されているように、 LVM_MOVEITEMTOGROUP メッセージの機能をエミュレートします。

CListCtrl::RedrawItems

リスト ビュー コントロールで、項目の範囲を強制的に再描画します。

BOOL RedrawItems(
    int nFirst,
    int nLast);

パラメーター

nFirst
再描画する最初の項目のインデックス。

nLast
再描画する最後の項目のインデックス。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

指定した項目は、リスト ビュー ウィンドウがWM_PAINTメッセージを受信するまで再描画されません。 すぐに再描画するには、この関数を使用した後、Windows UpdateWindow 関数を呼び出します。

CListCtrl::RemoveAllGroups

リスト ビュー コントロールからすべてのグループを削除します。

void RemoveAllGroups();

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_REMOVEALLGROUPS メッセージの機能をエミュレートします。

CListCtrl::RemoveGroup

リスト ビュー コントロールから指定したグループを削除します。

LRESULT RemoveGroup(int iGroupId);

パラメーター

iGroupId
削除するグループの識別子。

戻り値

成功した場合はグループのインデックスを返し、それ以外の場合は -1 を返します。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_REMOVEGROUP メッセージの機能をエミュレートします。

CListCtrl::Scroll

リスト ビュー コントロールの内容をスクロールします。

BOOL Scroll(CSize size);

パラメーター

size
水平スクロールと垂直スクロールの量をピクセル単位で指定する CSize オブジェクト。 sizeyメンバーは、リスト ビュー コントロールの行の高さ (ピクセル単位) で除算され、コントロールは結果の行数だけスクロールされます。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

CListCtrl::SetBkColor

リスト ビュー コントロールの背景色を設定します。

BOOL SetBkColor(COLORREF cr);

パラメーター

cr
設定する背景色、または背景色がない場合は CLR_NONE 値。 背景色を持つリスト ビュー コントロールは、背景色のないコントロールよりも大幅に高速に再描画されます。 詳細については、Windows SDK の COLORREF を参照してください。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

// Use the 3D button face color for the background.
COLORREF crBkColor = ::GetSysColor(COLOR_3DFACE);
m_myListCtrl.SetBkColor(crBkColor);
ASSERT(m_myListCtrl.GetBkColor() == crBkColor);

CListCtrl::SetBkImage

リスト ビュー コントロールの背景イメージを設定します。

BOOL SetBkImage(LVBKIMAGE* plvbkImage);

BOOL SetBkImage(
    HBITMAP hBitmap,
    BOOL fTile = TRUE,
    int xOffsetPercent = 0,
    int yOffsetPercent = 0);

BOOL SetBkImage(
    LPTSTR pszUrl,
    BOOL fTile = TRUE,
    int xOffsetPercent = 0,
    int yOffsetPercent = 0);

パラメーター

plvbkImage
新しい背景画像情報を含む LVBKIMAGE 構造体のアドレス。

hBitmap
ビットマップへのハンドル。

pszUrl
背景画像の URL を含む NULL終了文字列。

fTile
リスト ビュー コントロールの背景にイメージを並べて表示する場合は 0 以外。それ以外の場合は 0。

xOffsetPercent
リスト ビュー コントロールの原点からのイメージの左端のオフセット (ピクセル単位)。

yOffsetPercent
リスト ビュー コントロールの原点からの、イメージの上端のオフセット (ピクセル単位)。

戻り値

成功した場合は 0 以外、それ以外の場合は 0 を返します。

解説

Note

CListCtrl::SetBkImageは OLE COM 機能を利用するため、SetBkImageを使用する前に OLE ライブラリを初期化する必要があります。 アプリケーションが初期化されたときに COM ライブラリを初期化し、アプリケーションが終了したときにライブラリを初期化解除することをお勧めします。 これは、ActiveX テクノロジ、OLE オートメーション、OLE リンク/埋め込み、または ODBC/DAO 操作を使用する MFC アプリケーションで自動的に行われます。

CListCtrl::GetBkImage の例を参照してください。

CListCtrl::SetCallbackMask

リスト ビュー コントロールのコールバック マスクを設定します。

BOOL SetCallbackMask(UINT nMask);

パラメーター

nMask
コールバック マスクの新しい値。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

// Set the callback mask so that only the selected and focused states
// are stored for each item.
m_myListCtrl.SetCallbackMask(LVIS_SELECTED|LVIS_FOCUSED);
ASSERT(m_myListCtrl.GetCallbackMask() ==
    (LVIS_SELECTED|LVIS_FOCUSED));

CListCtrl::SetCheck

リスト コントロール項目の状態イメージが表示されるかどうかを判断します。

BOOL SetCheck(
    int nItem,
    BOOL fCheck = TRUE);

パラメーター

nItem
リスト コントロール項目の 0 から始まるインデックス。

fCheck
アイテムの状態イメージを表示するかどうかを指定します。 既定では、 fCheckTRUE され、状態イメージが表示されます。 fCheckFALSEされている場合、表示されません。

戻り値

項目がチェックされている場合は 0 以外、それ以外の場合は 0。

int nCount = m_myListCtrl.GetItemCount();
BOOL fCheck = FALSE;

// Set the check state of every other item to TRUE and
// all others to FALSE.
for (int i = 0; i < nCount; i++)
{
    m_myListCtrl.SetCheck(i, fCheck);
    ASSERT((m_myListCtrl.GetCheck(i) && fCheck) ||
        (!m_myListCtrl.GetCheck(i) && !fCheck));
    fCheck = !fCheck;
}

CListCtrl::SetColumn

リスト ビュー列の属性を設定します。

BOOL SetColumn(
    int nCol,
    const LVCOLUMN* pColumn);

パラメーター

nCol
属性が設定される列のインデックス。

pColumn
Windows SDK で説明されているように、新しい列属性を含む LVCOLUMN 構造体のアドレス。 構造体の mask メンバーは、設定する列属性を指定します。 mask メンバーがLVCF_TEXT値を指定した場合、構造体の pszText メンバーは null で終わる文字列のアドレスであり、構造体のcchTextMax メンバーは無視されます。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

CListCtrl::GetColumn の例を参照してください。

CListCtrl::SetColumnOrderArray

リスト ビュー コントロールの列の順序 (左から右) を設定します。

BOOL SetColumnOrderArray(
    int iCount,
    LPINT piArray);

パラメーター

piArray
リスト ビュー コントロール内の列のインデックス値を含むバッファーへのポインター (左から右)。 バッファーは、リスト ビュー コントロール内の列の合計数を格納するのに十分な大きさである必要があります。

iCount
リスト ビュー コントロール内の列の数。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_SetColumnOrderArray Win32 マクロの動作を実装します。

CListCtrl::GetColumnOrderArray の例を参照してください。

CListCtrl::SetColumnWidth

レポート ビューまたはリスト ビューの列の幅を変更します。

BOOL SetColumnWidth(
    int nCol,
    int cx);

パラメーター

nCol
幅を設定する列のインデックス。 リスト ビューでは、このパラメーターは 0 である必要があります。

cx
列の新しい幅。 Windows SDK のLVM_SETCOLUMNWIDTHで説明されているように、LVSCW_AUTOSIZEまたはLVSCW_AUTOSIZE_USEHEADERにすることができます。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

CListCtrl::SetExtendedStyle

リスト ビュー コントロールの現在の拡張スタイルを設定します。

DWORD SetExtendedStyle(DWORD dwNewStyle);

パラメーター

dwNewStyle
リスト ビュー コントロールで使用される拡張スタイルの組み合わせ。 これらのスタイルの説明的な一覧については、Windows SDK の「 Extended List View Styles トピック」を参照してください。

戻り値

リスト ビュー コントロールで使用されていた以前の拡張スタイルの組み合わせ。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_SetExtendedListViewStyle Win32 マクロの動作を実装します。

// Allow the header controls item to be movable by the user.
m_myListCtrl.SetExtendedStyle
    (m_myListCtrl.GetExtendedStyle()|LVS_EX_HEADERDRAGDROP);

CListCtrl::SetGroupInfo

現在のリスト ビュー コントロールの指定したグループを記述する情報を設定します。

int SetGroupInfo(
    int iGroupId,
    PLVGROUP pgrp);

パラメーター

iGroupId
情報が設定されているグループの識別子。

pgrp
設定する情報を含む LVGROUP 構造体へのポインター。 呼び出し元は、この構造体の割り当てとそのメンバーの設定を担当します。

戻り値

メソッドが成功した場合のグループの ID。それ以外の場合は -1。

解説

このメソッドは、Windows SDK で説明されている LVM_SETGROUPINFO メッセージを送信します。

CListCtrl::SetGroupMetrics

リスト ビュー コントロールのグループ メトリックを設定します。

void SetGroupMetrics(PLVGROUPMETRICS pGroupMetrics);

パラメーター

pGroupMetrics
設定するグループ メトリック情報を含む LVGROUPMETRICS 構造体へのポインター。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_SETGROUPMETRICS メッセージの機能をエミュレートします。

CListCtrl::SetHotCursor

リスト ビュー コントロールでホット トラッキングが有効な場合に使用されるカーソルを設定します。

HCURSOR SetHotCursor(HCURSOR hc);

パラメーター

hc
ホット カーソルを表すために使用されるカーソル リソースへのハンドル。

戻り値

リスト ビュー コントロールで使用されている以前のホット カーソル リソースへのハンドル。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_SetHotCursor Win32 マクロの動作を実装します。

ホバー選択が有効な場合にのみ表示されるホット カーソルは、カーソルがリスト ビュー項目に渡されるときに表示されます。 ホバー選択は、 LVS_EX_TRACKSELECT 拡張スタイルを設定することで有効になります。

CListCtrl::GetHotCursor の例を参照してください。

CListCtrl::SetHotItem

リスト ビュー コントロールの現在のホットアイテムを設定します。

int SetHotItem(int iIndex);

パラメーター

iIndex
ホット アイテムとして設定する項目の 0 から始まるインデックス。

戻り値

以前にホットな項目の 0 から始まるインデックス。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_SetHotItem Win32 マクロの動作を実装します。

CListCtrl::GetHotItem の例を参照してください。

CListCtrl::SetHoverTime

リスト ビュー コントロールの現在のホバー時間を設定します。

DWORD SetHoverTime(DWORD dwHoverTime = (DWORD)-1);

パラメーター

dwHoverTime
選択する前にマウス カーソルを項目の上に置く必要がある新しい遅延 (ミリ秒単位)。 既定値が渡された場合、時刻は既定のホバー時間に設定されます。

戻り値

前のホバー時間 (ミリ秒)。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_SetHoverTime Win32 マクロの動作を実装します。

CListCtrl::GetHoverTime の例を参照してください。

CListCtrl::SetIconSpacing

リスト ビュー コントロール内のアイコン間の間隔を設定します。

CSize SetIconSpacing(
    int cx,
    int cy);

CSize SetIconSpacing(CSize size);

パラメーター

cx
x 軸上のアイコン間の距離 (ピクセル単位)。

cy
y 軸上のアイコン間の距離 (ピクセル単位)。

size
x 軸と y 軸のアイコン間の距離 (ピクセル単位) を指定する CSize オブジェクト。

戻り値

アイコン間隔の前の値を含む CSize オブジェクト。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_SetIconSpacing Win32 マクロの動作を実装します。

// Leave lots of space between icons.
m_myListCtrl.SetIconSpacing(CSize(100, 100));

CListCtrl::SetImageList

リスト ビュー コントロールにイメージ リストを割り当てます。

CImageList* SetImageList(
    CImageList* pImageList,
    int nImageListType);

パラメーター

pImageList
割り当てるイメージ リストへのポインター。

nImageListType
イメージ リストの種類。 次のいずれかの値を指定できます。

  • LVSIL_NORMAL 大きなアイコンを含む画像の一覧。
  • LVSIL_SMALL 小さいアイコンを含む画像の一覧。
  • LVSIL_STATE 状態イメージを含む画像リスト。

戻り値

前のイメージ リストへのポインター。

CListCtrl::GetImageList の例を参照してください。

CListCtrl::SetInfoTip

ツールヒントのテキストを設定します。

BOOL SetInfoTip(PLVSETINFOTIP plvInfoTip);

パラメーター

plvInfoTip
設定する情報を含む LVFSETINFOTIP 構造体へのポインター。

戻り値

正常に終了した場合は、TRUE を返します。それ以外の場合は、FALSE を返します。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_SETINFOTIP メッセージの機能をエミュレートします。

CListCtrl::SetInsertMark

挿入ポイントを定義された位置に設定します。

BOOL SetInsertMark(LPLVINSERTMARK plvim);

パラメーター

plvim
挿入ポイントを設定する場所を指定する LVINSERTMARK 構造体へのポインター。

戻り値

成功した場合は TRUE を返し、それ以外の場合は FALSE を返します。 FALSEは、LVINSERTMARK構造体のcbSize メンバーのサイズが構造体の実際のサイズと等しくない場合、または現在のビューにカーソルが適用されない場合に返されます。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_SETINSERTMARK メッセージの機能をエミュレートします。

CListCtrl::SetInsertMarkColor

挿入ポイントの色を設定します。

COLORREF SetInsertMarkColor(COLORREF color);

パラメーター

color
挿入ポイントを設定する色を指定する COLORREF 構造体。

戻り値

前の色を含む COLORREF 構造体を返します。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_SETINSERTMARKCOLOR メッセージの機能をエミュレートします。

CListCtrl::SetItem

リスト ビュー アイテムの属性の一部またはすべてを設定します。

BOOL SetItem(const LVITEM* pItem);

BOOL SetItem(
    int nItem,
    int nSubItem,
    UINT nMask,
    LPCTSTR lpszItem,
    int nImage,
    UINT nState,
    UINT nStateMask,
    LPARAM lParam);

BOOL SetItem(
    int nItem,
    int nSubItem,
    UINT nMask,
    LPCTSTR lpszItem,
    int nImage,
    UINT nState,
    UINT nStateMask,
    LPARAM lParam,
    int nIndent);

パラメーター

pItem
Windows SDK で説明されているように、新しい項目属性を含む LVITEM 構造体のアドレス。 構造体の iItem および iSubItem メンバーは項目またはサブ項目を識別し、構造体の mask メンバーは設定する属性を指定します。 mask メンバーの詳細については、Remarksを参照してください。

nItem
属性を設定するアイテムのインデックス。

nSubItem
属性が設定されるサブ項目のインデックス。

nMask
設定する属性を指定します (「解説」を参照)。

lpszItem
アイテムのラベルを指定する null で終わる文字列のアドレス。

nImage
イメージ リスト内のアイテムのイメージのインデックス。

nState
変更する状態の値を指定します (「解説」を参照)。

nStateMask
変更する状態を指定します (「解説」を参照)。

lParam
項目に関連付ける 32 ビット (x64 用にコンパイルする場合は 64 ビット) のアプリケーション固有の値。

nIndent
インデントの幅 (ピクセル単位)。 nIndentがシステム定義の最小幅より小さい場合、新しい幅はシステム定義の最小値に設定されます。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

LVITEM構造体のiItemおよびiSubItemメンバー、およびnItemおよびnSubItemパラメーターは、属性を設定するアイテムとサブ項目を識別します。

LVITEM構造体の mask メンバーと nMask パラメーターは、設定する項目属性を指定します。

  • LVIF_TEXTpszText メンバーまたは lpszItem パラメーターは、null で終わる文字列のアドレスです。cchTextMax メンバーは無視されます。
  • LVIF_STATEstateMask メンバーまたはnStateMask パラメーターは、変更する項目の状態を指定し、state メンバーまたはnState パラメーターにそれらの状態の値が含まれています。

CListCtrl::HitTest の例を参照してください。

CListCtrl::SetItemCount

多数の項目を追加するためのリスト ビュー コントロールを準備します。

void SetItemCount(int nItems);

パラメーター

nItems
コントロールに最終的に含まれる項目の数。

解説

仮想リスト ビュー コントロールの項目数を設定するには、「 CListCtrl::SetItemCountEx」を参照してください。

このメンバー関数は、Windows SDK で説明されているように、 ListView_SetItemCount Win32 マクロの動作を実装します。

CString str;

// Add 1024 items to the list view control.
m_myListCtrl.SetItemCount(1024);

for (int i = 0; i < 1024; i++)
{
    str.Format(TEXT("item %d"), i);
    m_myListCtrl.InsertItem(i, str);
}

CListCtrl::SetItemCountEx

仮想リスト ビュー コントロールの項目数を設定します。

BOOL SetItemCountEx(
    int iCount,
    DWORD dwFlags = LVSICF_NOINVALIDATEALL);

パラメーター

iCount
コントロールに最終的に含まれる項目の数。

dwFlags
アイテム数をリセットした後のリスト ビュー コントロールの動作を指定します。 この値には、次の組み合わせを指定できます。

  • LVSICF_NOINVALIDATEALL 影響を受ける項目が現在表示されていない限り、リスト ビュー コントロールは再描画されません。 これが既定値です。
  • LVSICF_NOSCROLL リスト ビュー コントロールは、項目数が変更されたときにスクロール位置を変更しません。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

このメンバー関数は、Windows SDKand の説明に従って Win32 マクロの動作を実装 ListView_SetItemCountEx、仮想リスト ビューに対してのみ呼び出す必要があります。

CString str;

// Add 1024 items to the list view control.

// Force my virtual list view control to allocate
// enough memory for my 1024 items.
m_myVirtualListCtrl.SetItemCountEx(1024, LVSICF_NOSCROLL|
    LVSICF_NOINVALIDATEALL);

for (int i = 0; i < 1024; i++)
{
    str.Format(TEXT("item %d"), i);
    m_myVirtualListCtrl.InsertItem(i, str);
}

CListCtrl::SetItemData

nItemで指定された項目に関連付けられている 32 ビット (x64 用にコンパイルする場合は 64 ビット) のアプリケーション固有の値を設定します。

BOOL SetItemData(int nItem, DWORD_PTR dwData);

パラメーター

nItem
データが設定されるリスト アイテムのインデックス。

dwData
項目に関連付ける 32 ビット値 (x64 用にコンパイルしている場合は 64 ビット)。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

この値は、Windows SDK で説明されているように、LVITEM構造体のlParam メンバーです。

// Set the data of each item to be equal to its index.
for (int i = 0; i < m_myListCtrl.GetItemCount(); i++)
{
    m_myListCtrl.SetItemData(i, i);
}

CListCtrl::SetItemIndexState

現在のリスト ビュー コントロール内の項目の状態を設定します。

BOOL SetItemIndexState(
    PLVITEMINDEX pItemIndex,
    DWORD dwState,
    DWORD dwMask) const;

パラメーター

pItemIndex
[in]項目を記述する LVITEMINDEX 構造体へのポインター。 呼び出し元は、この構造体の割り当てとそのメンバーの設定を担当します。

dwState
[in]項目を設定する状態。これは、 リスト ビュー項目の状態のビットごとの組み合わせです。 リセットする場合は 0、状態を設定する場合は 1 を指定します。

dwMask
[in] dwState パラメーターで指定された状態の有効なビットのマスク。 リスト ビュー項目の状態のビットごとの組み合わせ (OR) 指定します

戻り値

TRUE このメソッドが成功した場合。それ以外の場合は FALSE

解説

dwState パラメーターの詳細については、「リスト 項目の状態を参照してください。

dwMask パラメーターの詳細については、LVITEM構造体のstateMaskメンバーを参照してください。

このメソッドは、Windows SDK で説明されている LVM_SETITEMINDEXSTATE メッセージを送信します。

CListCtrl::SetItemPosition

リスト ビュー コントロール内の指定した位置に項目を移動します。

BOOL SetItemPosition(
    int nItem,
    POINT pt);

パラメーター

nItem
位置が設定されるアイテムのインデックス。

pt
項目の左上隅の新しい位置をビュー座標で指定する POINT 構造体。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

コントロールは、アイコンまたは小さいアイコン ビューに含まれている必要があります。

リスト ビュー コントロールに LVS_AUTOARRANGE スタイルがある場合、リスト ビューはアイテムの位置が設定された後に配置されます。

CListCtrl::GetItemPosition の例を参照してください。

CListCtrl::SetItemState

リスト ビュー コントロール内の項目の状態を変更します。

BOOL SetItemState(
    int nItem,
    LVITEM* pItem);

BOOL SetItemState(
    int nItem,
    UINT nState,
    UINT nMask);

パラメーター

nItem
状態が設定されるアイテムのインデックス。 すべての項目に状態変更を適用するには、-1 を渡します。

pItem
Windows SDK で説明されているように、 LVITEM 構造体のアドレス。 構造体の stateMask メンバーは、変更する状態ビットを指定し、構造体の state メンバーには、それらのビットの新しい値が含まれています。 他のメンバーは無視されます。

nState
状態ビットの新しい値。 使用可能な値の一覧については、 CListCtrl::GetNextItemLVITEM 状態メンバーに関するページを参照してください。

nMask
変更する状態ビットを指定するマスク。 この値は、 LVITEM 構造体の stateMask メンバーに対応します。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

アイテムの "状態" は、アイテムの可用性を指定する値、ユーザー アクションを示す値、またはアイテムの状態を反映する値です。 リスト ビュー コントロールは、ユーザーが項目を選択したときなど、一部の状態ビットを変更します。 アプリケーションは、アイテムを無効または非表示にしたり、オーバーレイ イメージまたは状態イメージを指定したりするために、他の状態ビットを変更する場合があります。

CListCtrl::GetTopIndex の例を参照してください。

CListCtrl::SetItemText

リスト ビュー項目またはサブ項目のテキストを変更します。

BOOL SetItemText(
    int nItem,
    int nSubItem,
    LPCTSTR lpszText);

パラメーター

nItem
テキストが設定されるアイテムのインデックス。

nSubItem
サブ項目のインデックス。項目ラベルを設定する場合は 0。

lpszText
新しい項目のテキストを含む文字列へのポインター。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

このメソッドは、 LVS_OWNERDATA ウィンドウ スタイルを含むコントロールで使用することを目的としていません (実際には、デバッグ ビルドでアサーションが発生します)。 このリスト コントロール スタイルの詳細については、「 List-View コントロールの概要を参照してください。

CListCtrl::InsertItem の例を参照してください。

CListCtrl::SetOutlineColor

LVS_EX_BORDERSELECTの拡張ウィンドウ スタイルが設定されている場合に、リスト ビュー コントロールの境界線の色を設定します。

COLORREF SetOutlineColor(COLORREF color);

パラメーター

color
アウトラインの色を含む新しい COLORREF 構造体。

戻り値

アウトラインの色を含む前の COLORREF 構造体

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_SETOUTLINECOLOR メッセージの機能をエミュレートします。

CListCtrl::SetSelectedColumn

リスト ビュー コントロールの選択した列を設定します。

LRESULT SetSelectedColumn(int iCol);

パラメーター

iCol
選択する列のインデックス。

戻り値

戻り値は使用されません。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_SETSELECTEDCOLUMN メッセージの機能をエミュレートします。

CListCtrl::SetSelectionMark

リスト ビュー コントロールの選択マークを設定します。

int SetSelectionMark(int iIndex);

パラメーター

iIndex
複数選択の最初の項目の 0 から始まるインデックス。

戻り値

前の選択マーク。選択マークがない場合は -1。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_SetSelectionMark Win32 マクロの動作を実装します。

CListCtrl::GetSelectionMark の例を参照してください。

CListCtrl::SetTextBkColor

リスト ビュー コントロール内のテキストの背景色を設定します。

BOOL SetTextBkColor(COLORREF cr);

パラメーター

cr
新しいテキストの背景色を指定する COLORREF 。 詳細については、Windows SDK の COLORREF を参照してください。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

// Use the 3D button face color for the background.
COLORREF crBkColor = ::GetSysColor(COLOR_3DFACE);
m_myListCtrl.SetTextBkColor(crBkColor);
ASSERT(m_myListCtrl.GetTextBkColor() == crBkColor);

CListCtrl::SetTextColor

リスト ビュー コントロールのテキストの色を設定します。

BOOL SetTextColor(COLORREF cr);

パラメーター

cr
新しいテキストの色を指定する COLORREF 。 詳細については、Windows SDK の COLORREF を参照してください。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

// Use the window text color for
// the item text of the list view control.
COLORREF crTextColor = ::GetSysColor(COLOR_WINDOWTEXT);
m_myListCtrl.SetTextColor(crTextColor);
ASSERT(m_myListCtrl.GetTextColor() == crTextColor);

CListCtrl::SetTileInfo

リスト ビュー コントロールのタイルの情報を設定します。

BOOL SetTileInfo(PLVTILEINFO pTileInfo);

パラメーター

pTileInfo
設定する情報を含む LVTILEINFO 構造体へのポインター。

戻り値

正常に終了した場合は、TRUE を返します。それ以外の場合は、FALSE を返します。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_SETTILEINFO メッセージの機能をエミュレートします。

CListCtrl::SetTileViewInfo

リスト ビュー コントロールがタイル ビューで使用する情報を設定します。

BOOL SetTileViewInfo(PLVTILEVIEWINFO ptvi);

パラメーター

ptvi
設定する情報を含む LVTILEVIEWINFO 構造体へのポインター。

戻り値

正常に終了した場合は、TRUE を返します。それ以外の場合は、FALSE を返します。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_SETTILEVIEWINFO メッセージの機能をエミュレートします。

CListCtrl::SetToolTips

リスト ビュー コントロールがツールヒントの表示に使用するツールヒント コントロールを設定します。

CToolTipCtrl* SetToolTips(CToolTipCtrl* pWndTip);

パラメーター

pWndTip
リスト コントロールが使用する CToolTipCtrl オブジェクトへのポインター。

戻り値

コントロールによって以前に使用されたヒントを含む CToolTipCtrl オブジェクトへのポインター。以前にツールヒントが使用されなかった場合は NULL

解説

このメンバー関数では、Windows SDK で説明されているように、Win32 メッセージ LVM_SETTOOLTIPS の動作が実装されます。

ツールヒントを使用しない場合は、CListCtrl オブジェクトの作成時にLVS_NOTOOLTIPSスタイルを指定します。

CListCtrl::SetView

リスト ビュー コントロールのビューを設定します。

DWORD SetView(int iView);

パラメーター

iView
選択するビュー。

戻り値

成功した場合は 1 を返し、それ以外の場合は -1 を返します。 たとえば、ビューが無効な場合、-1 が返されます。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_SETVIEW メッセージの機能をエミュレートします。

CListCtrl::SetWorkAreas

リスト ビュー コントロールにアイコンを表示できる領域を設定します。

void SetWorkAreas(
    int nWorkAreas,
    LPRECT lpRect);

パラメーター

nWorkAreas
lpRectが指す配列内のRECT構造体 (またはCRect オブジェクト) の数。

lpRect
リスト ビュー コントロールの新しい作業領域を指定する RECT 構造体 (または CRect オブジェクト) の配列のアドレス。 これらの領域は、クライアント座標で指定する必要があります。 このパラメーターが NULL場合、作業領域はコントロールのクライアント領域に設定されます。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_SetWorkAreas Win32 マクロの動作を実装します。

// Remove all working areas.
m_myListCtrl.SetWorkAreas(0, NULL);

CListCtrl::SortGroups

アプリケーション定義の比較関数を使用して、リスト ビュー コントロール内の ID でグループを並べ替えます。

BOOL SortGroups(
    PFNLVGROUPCOMPARE _pfnGroupCompare,
    LPVOID _plv);

パラメーター

_pfnGroupCompare
グループ比較関数へのポインター。

_plv
void ポインター。

戻り値

正常に終了した場合は、TRUE を返します。それ以外の場合は、FALSE を返します。

解説

このメンバー関数は、Windows SDK で説明されているように、 LVM_SORTGROUPS メッセージの機能をエミュレートします。

CListCtrl::SortItems

アプリケーション定義の比較関数を使用してリスト ビュー項目を並べ替えます。

BOOL SortItems(
    PFNLVCOMPARE pfnCompare,
    DWORD_PTR dwData);

パラメーター

pfnCompare
[in]アプリケーション定義比較関数のアドレス。

並べ替え操作は、2 つのリスト項目の相対順序を決定する必要があるたびに比較関数を呼び出します。 比較関数は、クラスの静的メンバーであるか、クラスのメンバーではないスタンドアロン関数である必要があります。

dwData
[in]比較関数に渡されるアプリケーション定義値。

戻り値

TRUE メソッドが成功した場合。それ以外の場合は FALSE

解説

このメソッドは、新しいシーケンスを反映するように各項目のインデックスを変更します。

比較関数 ( pfnCompare) の形式は次のとおりです。

int CALLBACK CompareFunc(LPARAM lParam1,
    LPARAM lParam2,
    LPARAM lParamSort);

比較関数は、最初の項目が 2 番目の項目の前にある場合は負の値を返す必要があります。最初の項目が 2 番目の項目の後に続く場合は正の値、2 つの項目が等しい場合は 0 を返す必要があります。

lParam1 パラメーターは、比較される最初の項目に関連付けられた 32 ビット値 (x64 用にコンパイルする場合は 64 ビット) であり、lParam2 パラメーターは 2 番目の項目に関連付けられた値です。 これらは、リストに挿入されたときに、アイテムのLVITEM構造体のlParam メンバーで指定された値です。 lParamSort パラメーターは、dwData値と同じです。

このメソッドは、Windows SDK で説明されている LVM_SORTITEMS メッセージを送信します。

項目が lParam 値で並べ替えられる単純な比較関数を次に示します。

// Sort items by associated lParam
int CALLBACK CListCtrlDlg::MyCompareProc(LPARAM lParam1, LPARAM lParam2,
    LPARAM lParamSort)
{
    UNREFERENCED_PARAMETER(lParamSort);
    return (int)(lParam1 - lParam2);
}

// Sort the items by passing in the comparison function.
void CListCtrlDlg::Sort()
{
    m_myListCtrl.SortItems(&CListCtrlDlg::MyCompareProc, 0);
}

CListCtrl::SortItemsEx

アプリケーション定義比較関数を使用して、現在のリスト ビュー コントロールの項目を並べ替えます。

BOOL SortItemsEx(
    PFNLVCOMPARE pfnCompare,
    DWORD_PTR dwData);

パラメーター

pfnCompare
[in]アプリケーション定義比較関数のアドレス。 並べ替え操作は、2 つのリスト項目の相対順序を決定する必要があるたびに比較関数を呼び出します。 比較関数は、クラスの静的メンバーであるか、クラスのメンバーではないスタンドアロン関数である必要があります。

dwData
[in]比較関数に渡されるアプリケーション定義値。

戻り値

TRUE このメソッドが成功した場合。それ以外の場合は FALSE

解説

このメソッドは、新しいシーケンスを反映するように各項目のインデックスを変更します。

比較関数 ( pfnCompare) の形式は次のとおりです。

int CALLBACK CompareFunc(LPARAM lParam1,
    LPARAM lParam2,
    LPARAM lParamSort);

このメッセージは、比較関数に渡される情報の種類を除き、 LVM_SORTITEMSのようなものです。 LVM_SORTITEMSでは、lParam1lParam2は比較する項目の値です。 LVM_SORTITEMSEXでは、lParam1は比較する最初の項目の現在のインデックスであり、lParam2は 2 番目の項目の現在のインデックスです。 LVM_GETITEMTEXT メッセージを送信して、アイテムに関する詳細情報を取得できます。

比較関数は、最初の項目が 2 番目の項目の前にある場合は負の値を返す必要があります。最初の項目が 2 番目の項目の後に続く場合は正の値、2 つの項目が等しい場合は 0 を返す必要があります。

Note

並べ替え処理中に、リスト ビューの内容が不安定になります。 コールバック関数が、 LVM_GETITEM以外のリスト ビュー コントロールにメッセージを送信する場合、結果は予測できません。

このメソッドは、Windows SDK で説明されている LVM_SORTITEMSEX メッセージを送信します。

最初のコード例では、現在のリスト ビュー コントロールにアクセスするために使用される変数 ( m_listCtrl) を定義します。 この変数は次の例で使用されています。

public:
    // Variable used to access the list control.
    CListCtrl m_listCtrl;

次のコード例では、 SortItemEx メソッドを示します。 このコード例の前のセクションでは、レポート ビューに "ClientID" と "Grade" という 2 つの列を表示するリスト ビュー コントロールを作成しました。 次のコード例では、"Grade" 列の値を使用してテーブルを並べ替えます。

// The ListCompareFunc() method is a global function used by SortItemEx().
int CALLBACK ListCompareFunc(
                             LPARAM lParam1,
                             LPARAM lParam2,
                             LPARAM lParamSort)
{
    CListCtrl* pListCtrl = (CListCtrl*) lParamSort;
    CString    strItem1 = pListCtrl->GetItemText(static_cast<int>(lParam1), 1);
    CString    strItem2 = pListCtrl->GetItemText(static_cast<int>(lParam2), 1)
    int x1 = _tstoi(strItem1.GetBuffer());
    int x2 = _tstoi(strItem2.GetBuffer());
    int result = 0;
    if ((x1 - x2) < 0)
        result = -1;
    else if ((x1 - x2) == 0)
        result = 0;
    else
        result = 1;

    return result;
}

void CCListCtrl_s2Dlg::OnBnClickedButton1()
{
    // SortItemsEx
    m_listCtrl.SortItemsEx( ListCompareFunc, (LPARAM)&m_listCtrl );
}

CListCtrl::SubItemHitTest

特定の位置にあるリスト ビュー項目 (存在する場合) を決定します。

int SubItemHitTest(LPLVHITTESTINFO pInfo);

パラメーター

pInfo
LVHITTESTINFO 構造体へのポインター。

戻り値

テスト対象の項目またはサブ項目の 1 から始まるインデックス(存在する場合)、それ以外の場合は -1。

解説

このメンバー関数は、Windows SDK で説明されているように、 ListView_SubItemHitTest Win32 マクロの動作を実装します。

void CListCtrlDlg::OnDblClk(NMHDR* pNMHDR, LRESULT* pResult)
{
    UNREFERENCED_PARAMETER(pResult);
    LPNMITEMACTIVATE pia = (LPNMITEMACTIVATE)pNMHDR;
    LVHITTESTINFO lvhti;

    // Clear the subitem text the user clicked on.
    lvhti.pt = pia->ptAction;
    m_myListCtrl.SubItemHitTest(&lvhti);

    if (lvhti.flags & LVHT_ONITEMLABEL)
    {
        m_myListCtrl.SetItemText(lvhti.iItem, lvhti.iSubItem, NULL);
    }
}

CListCtrl::Update

リスト ビュー コントロールに、 nItemで指定された項目を強制的に再描画します。

BOOL Update(int nItem);

パラメーター

nItem
更新する項目のインデックス。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

この関数は、リスト ビュー コントロールに LVS_AUTOARRANGE スタイルがある場合にも配置します。

CListCtrl::GetSelectedCount の例を参照してください。

関連項目

MFC サンプル ROWLIST
CWnd クラス
階層図
CImageList クラス