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
クラスの簡単な概要を次に示します。 詳細な概念的な説明については、「CListCtrl
と Controls の使用を参照してください。
ビュー
リスト ビュー コントロールは、"ビュー" と呼ばれる 4 つの異なる方法でコンテンツを表示できます。
アイコン ビュー
各項目は、フルサイズのアイコン (32 x 32 ピクセル) として表示され、その下にラベルが付いています。 ユーザーは、リスト ビュー ウィンドウ内の任意の場所に項目をドラッグできます。
小さいアイコン ビュー
各項目は小さなアイコン (16 x 16 ピクセル) として表示され、右側にラベルが付いています。 ユーザーは、リスト ビュー ウィンドウ内の任意の場所に項目をドラッグできます。
リスト ビュー
各アイテムは、その右側にラベルが付いた小さなアイコンとして表示されます。 項目は列に配置され、リスト ビュー ウィンドウ内の任意の場所にドラッグすることはできません。
レポート ビュー
各項目は独自の行に表示され、右側の列に追加情報が配置されます。 左端の列には小さなアイコンとラベルが含まれており、後続の列にはアプリケーションで指定されたサブ項目が含まれます。 埋め込みヘッダー コントロール (クラス
CHeaderCtrl
) は、これらの列を実装します。 レポート ビューのヘッダー コントロールと列の詳細については、「 使用するCListCtrl
: コントロールへの列の追加 (レポート ビュー)」を参照してください。
コントロールの現在のリスト ビューのスタイルによって、現在のビューが決まります。 これらのスタイルとその使用方法の詳細については、「CListCtrl
の使用: リスト コントロール スタイルの変更を参照してください。
拡張スタイル
クラス CListCtrl
は、標準のリスト スタイルに加えて、拡張スタイルの大規模なセットをサポートし、強化された機能を提供します。 この機能の例を次に示します。
ホバー選択
有効にすると、カーソルがアイテムの上に一定期間残っている場合に、項目を自動的に選択できます。
仮想リスト ビュー
有効にすると、コントロールは最大 DWORD 項目をサポートできます。 これは、アプリケーションで項目データを管理するオーバーヘッドを配置することによって可能です。 項目の選択とフォーカス情報を除き、すべての項目情報をアプリケーションで管理する必要があります。 詳細については、「
CListCtrl
の使用: 仮想リスト コントロール」を参照してください。1 回と 2 回のクリックによるアクティブ化
有効にすると、ホット トラッキング (アイテム テキストの自動強調表示) と、強調表示されたアイテムの 1 クリックまたは 2 回クリックによるアクティブ化が許可されます。
列のドラッグ アンド ドロップ順序
有効にすると、リスト ビュー コントロール内の列をドラッグ アンド ドロップで並べ替えることができます。 レポート ビューでのみ使用できます。
これらの新しい拡張スタイルの使用方法については、「 使用する CListCtrl
: リスト コントロール スタイルの変更を参照してください。
アイテムとサブ項目
リスト ビュー コントロール内の各項目は、アイコン (イメージ リストから)、ラベル、現在の状態、およびアプリケーション定義値 ("項目データ" と呼ばれます) で構成されます。 1 つ以上のサブ項目を各項目に関連付けることもできます。 "サブ項目" は、レポート ビューで、アイテムのアイコンとラベルの右側の列に表示できる文字列です。 リスト ビュー コントロール内のすべての項目は、同じ数のサブ項目を持つ必要があります。
クラス CListCtrl
には、これらの項目を挿入、削除、検索、および変更するためのいくつかの関数が用意されています。 詳細については、「 CListCtrl::GetItem
、 CListCtrl::InsertItem
、 CListCtrl::FindItem
」、「 項目をコントロールに追加する」および「 リスト コントロールでのスクロール、配置、並べ替え、検索」を参照。
既定では、リスト ビュー コントロールはアイテムのアイコンとテキスト属性を格納します。 ただし、これらの項目型に加えて、クラス CListCtrl
では "コールバック項目" がサポートされます。"コールバック項目" は、コントロールではなくアプリケーションがテキスト、アイコン、またはその両方を格納するリスト ビュー項目です。 コールバック マスクは、アプリケーションによって提供される項目属性 (テキストやアイコン) を指定するために使用されます。 アプリケーションでコールバック項目を使用する場合は、テキスト属性やアイコン属性をオンデマンドで指定できる必要があります。 コールバック項目は、アプリケーションがこの情報の一部を既に保持している場合に役立ちます。 詳細については、「CListCtrl
の使用: コールバック項目とコールバック マスク」を参照してください。
イメージ リスト
リスト ビュー項目のアイコン、ヘッダー項目イメージ、およびアプリケーション定義の状態は、リスト ビュー コントロールを作成して割り当てる複数のイメージ リスト (クラス CImageList
によって実装されます) に含まれています。 各リスト ビュー コントロールには、最大 4 種類の画像リストを含めることができます。
大アイコン
フルサイズのアイコンのアイコン ビューで使用されます。
小アイコン
アイコン ビューで使用されるアイコンの小さいバージョンに対して、小さいアイコン、リスト、およびレポート ビューで使用されます。
アプリケーション定義の状態
状態イメージが含まれています。これは、アプリケーション定義の状態を示す項目のアイコンの横に表示されます。
ヘッダー項目
レポート ビューで、各ヘッダー コントロール アイテムに表示される小さな画像に使用されます。
既定では、リスト ビュー コントロールは、破棄されたときに割り当てられたイメージ リストを破棄します。ただし、開発者は、アプリケーションによって決定された各イメージ リストが使用されなくなったときに破棄することで、この動作をカスタマイズできます。 詳細については、「CListCtrl
の使用: リスト アイテムとイメージ リスト」を参照してください。
継承階層
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 のCreateWindowEx
の dwExStyle パラメーターを参照してください。
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 の「<
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_ABOVE
、LVHT_BELOW
、LVHT_TOLEFT
、およびLVHT_TORIGHT
の値を使用して、リスト ビュー コントロールの内容をスクロールするかどうかを決定できます。 これらのフラグのうち 2 つを組み合わせることができます。たとえば、位置がクライアント領域の上と左側にある場合などです。
構造体のflag
メンバーのLVHT_ONITEM
値をテストして、特定の位置がリスト ビューアイテムの上にあるかどうかを判断できます。 この値は、構造体のflag
メンバーのLVHT_ONITEMICON
、LVHT_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_LEFT
、LVCFMT_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
オブジェクト。 sizeのy
メンバーは、リスト ビュー コントロールの行の高さ (ピクセル単位) で除算され、コントロールは結果の行数だけスクロールされます。
戻り値
成功した場合は 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
アイテムの状態イメージを表示するかどうかを指定します。 既定では、 fCheck
は TRUE
され、状態イメージが表示されます。 fCheck
がFALSE
されている場合、表示されません。
戻り値
項目がチェックされている場合は 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_TEXT
pszText
メンバーまたはlpszItem
パラメーターは、null で終わる文字列のアドレスです。cchTextMax
メンバーは無視されます。LVIF_STATE
stateMask
メンバーまたは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::GetNextItem
と LVITEM
状態メンバーに関するページを参照してください。
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
では、lParam1
とlParam2
は比較する項目の値です。 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
の例を参照してください。