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値は無視されます。

要件

要件
サポートされている最小のクライアント
Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2003 [デスクトップ アプリのみ]
Header
Winuser.h (Windows.h を含む)

関連項目

参照

WM_CHARTOITEM

その他のリソース

HIWORD

LOWORD

WM_KEYDOWN