次の方法で共有


既定の List-View メッセージ処理

このセクションでは、リスト ビュー コントロールによって実行されるウィンドウ メッセージ処理の一覧を示します。

メッセージ処理

次の表では、リスト ビュー コントロールによって実行されるウィンドウ メッセージの処理について説明します。

メッセージ 実行された処理
WM_CHAR 指定した文字で始まるリスト ビューアイテムを検索し、アイテムが見つかった場合は、フォーカスを選択して項目に設定します。 タイムアウト間隔内で受信した複数の文字 (現在は 1 秒で固定) が連結され、リスト ビュー コントロールは結果の文字列で始まる項目を検索します。
WM_COMMAND EN_UPDATE および EN_KILLFOCUS 通知コードを処理し、他のすべての編集コントロール通知を親ウィンドウに転送します。
WM_CREATE WM_NCCREATEに追加の初期化を実行します。 LVS_SHAREIMAGELISTS ウィンドウ スタイルが指定されていない場合、リスト ビュー コントロールは、この時点でアイコンと小さいアイコン画像リストを作成します。
WM_DESTROY WM_CREATE中に割り当てられたリソースを解放します。
WM_ERASEBKGND リスト ビュー コントロールの現在の背景色を使用して、ウィンドウの背景を消去します。 背景色がCLR_NONE値の場合、リスト ビュー コントロールはメッセージを親ウィンドウに転送します。
WM_GETDLGCODE DLGC_WANTTAB値とDLGC_WANTARROWS値の組み合わせを返します。
WM_GETFONT 現在のラベル フォントへのハンドルを返します。
WM_HSCROLL リスト ビュー コントロールを水平方向にスクロールします。
WM_KEYDOWN SPACE キー、ENTER キー、方向キーを処理し、LVN_KEYDOWN 通知コードを親ウィンドウに送信します。
WM_KILLFOCUS フォーカスされたリスト アイテム (存在する場合) を再描画し、NM_KILLFOCUS 通知コードを親ウィンドウに送信します。
WM_LBUTTONDBLCLK 親ウィンドウに通知コード NM_DBLCLK (リスト ビュー) を送信します。
WM_LBUTTONDOWN クリック操作またはドラッグ操作が開始されているかどうかに応じて、さまざまな方法で処理されます。 関連する操作を決定するために、リスト ビュー コントロールは、ボタンが離されるかマウスが移動されるまでモーダル メッセージ ループに入ります。 クリックの場合、リスト ビュー コントロールは、カーソルの位置、Shift キーと Ctrl キーの状態などを考慮して、フォーカスがある項目と選択されている項目を変更する可能性があります。 次に、リスト ビュー コントロールは、親ウィンドウに通知コード NM_CLICK (リスト ビュー) を送信します。
項目の上にドラッグを開始すると、リスト ビュー コントロールが選択され、項目にフォーカスが設定されます。 次に、LVN_BEGINDRAG 通知コードを親ウィンドウに送信します。 親ウィンドウは、ドラッグ操作を実際に実行する役割を担います。
ウィンドウの背景上でドラッグを開始すると、リスト ビュー コントロールは別のモーダル メッセージ ループに入り、ユーザーがマウスをドラッグして四角形を形成できるようにします。 四角形内の項目が選択されます。
WM_NCCREATE 内部データ構造を割り当てて初期化した後、DefWindowProc 関数を呼び出します。
WM_NCDESTROY リスト ビュー コントロールによって割り当てられたリソースを解放します。 LVS_SHAREIMAGELISTS スタイルを使用しない限り、これにはフルサイズの画像リストと小さな画像リストの削除が含まれます。
WM_NOTIFY ヘッダー コントロールの通知コードを処理します。
WM_PAINT 更新リージョン内のすべての項目を表示します。 コールバック項目の場合、コントロールは最初に LVN_GETDISPINFO 通知コードを所有者ウィンドウに送信して表示情報を要求します。 wParam パラメーターが NULL 以外の場合、コントロールは値が HDC であると想定し、そのデバイス コンテキストを使用して描画します。
WM_RBUTTONDOWN コントロールが (NM_CLICK (リスト ビュー)ではなく) 通知コード NM_RCLICK (リスト ビュー) と LVN_BEGINRDRAG 通知コード (LVN_BEGINDRAGではなく) を送信することを除き、WM_LBUTTONDOWN メッセージと同じように処理されます。 コントロールは対応する WM_RBUTTONUP メッセージを処理し、ディスパッチしないことに注意してください。 したがって、アプリケーションは、コントロールをサブクラス化しても、このメッセージを表示できません。
WM_SETFOCUS フォーカスのあるリスト 項目がある場合は再描画し、NM_SETFOCUS 通知コードを親ウィンドウに送信します。
WM_SETFONT 指定したフォント ハンドルを保存し、メッセージがある場合はヘッダー ウィンドウに転送し、新しいフォントを使用して再描画します。
WM_SETREDRAW 再描画のオンとオフを切り替えます。
WM_TIMER 項目ラベルの編集を開始します。 ユーザーがフォーカスされた項目のラベルをクリックすると、リスト ビュー コントロールは編集モードにすぐに入るのではなくタイマーを設定します。 このタイマーを使用すると、ユーザーがラベルをダブルクリック 場合に、リスト ビュー コントロールが編集モード に入らなくても済みます。
WM_VSCROLL リスト ビュー コントロールを垂直方向にスクロールします。
WM_WINDOWPOSCHANGED ウィンドウのスクロール バーを更新します。 現在のビューがアイコンまたは小さいアイコン ビューで、LVS_AUTOARRANGE スタイルが指定されている場合、リスト ビュー コントロールもリスト アイテムを配置します。
WM_WININICHANGE システム メトリックへの変更を処理します。