WM_VKEYTOITEM メッセージ

WM_KEYDOWN メッセージへの応答として、LBS_WANTKEYBOARDINPUT スタイルのリスト ボックスによってオーナーに送信されます。

WM_VKEYTOITEM

    WPARAM wParam;
    LPARAM lParam; 

パラメーター

wParam

LOWORD は、ユーザーが押したキーの仮想キー コードを指定します。 HIWORD はキャレットの現在の位置を指定します。

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 (デスクトップ アプリのみ)
ヘッダー
Winuser.h (Windows.h を含む)

関連項目

リファレンス

WM_CHARTOITEM

その他のリソース

HIWORD

LOWORD

WM_KEYDOWN