WM_VKEYTOITEM メッセージ
WM_KEYDOWN メッセージへの応答として、LBS_WANTKEYBOARDINPUT スタイルのリスト ボックスによってオーナーに送信されます。
WM_VKEYTOITEM
WPARAM wParam;
LPARAM lParam;
パラメーター
戻り値
戻り値は、メッセージへの応答としてアプリケーションによって実行されたアクションを指定します。 戻り値 -2 は、項目選択のすべての側面がアプリケーションによって処理され、リスト ボックスによるそれ以上のアクションが不要であることを示します (「解説」を参照)。戻り値 -1 は、キーストロークへの応答として、リスト ボックスによる既定のアクションの実行が必要であることを示します。 0 以上の戻り値は、リスト ボックス内の項目のインデックスを指定し、指定された項目に対するキーストロークの既定のアクションを、リスト ボックスが実行する必要があることを示します。
解説
戻り値 -2 は、リスト ボックス コントロールによって文字に変換されないキーに対してのみ有効です。 WM_KEYDOWN メッセージが WM_CHAR メッセージに変換され、アプリケーションによって処理されるのが、キータッチの結果として生成された WM_VKEYTOITEM メッセージである場合、戻り値は、リスト ボックスによって無視され、その文字の既定の処理が実行されます。 VK_UP、VK_DOWN、VK_NEXT、VK_PREVIOUS などのキーによって生成された WM_KEYDOWN メッセージは、WM_CHAR メッセージに変換されません。 このような場合、WM_VKEYTOITEM メッセージがトラップされ、-2 が返されると、リスト ボックスではそのキーの既定の処理を実行できなくなります。
char メッセージを生成して特別な処理を実行するキーをトラップするために、アプリケーションでリスト・ボックスをサブクラス化し、WM_KEYDOWN メッセージと WM_CHAR メッセージの両方をトラップして、サブクラス・プロシージャでそのメッセージを適切に処理する必要があります。
上記の解説は、LBS_WANTKEYBOARDINPUT スタイルで作成された通常のリスト ボックスに適用されます。 オーナー描画のリスト ボックスの場合、アプリケーションで WM_CHARTOITEM メッセージを処理する必要があります。
DefWindowProc 関数は -1 を返します。
ダイアログ ボックス プロシージャでこのメッセージを処理する場合、目的の戻り値を BOOL にキャストし、その値を直接返す必要があります。 SetWindowLong 関数によって設定された DWL_MSGRESULT 値は無視されます。
要件
要件 | Value |
---|---|
サポートされている最小のクライアント |
Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2003 (デスクトップ アプリのみ) |
ヘッダー |
|
関連項目
-
リファレンス
-
その他のリソース