WM_VKEYTOITEM消息

由具有 LBS_WANTKEYBOARDINPUT 样式的列表框发送到其所有者以响应 WM_KEYDOWN 消息。

WM_VKEYTOITEM

    WPARAM wParam;
    LPARAM lParam; 

参数

wParam

LOWORD 指定用户按下的键的虚拟键代码。 HIWORD 指定插入点的当前位置。

lParam

列表框的句柄。

返回值

返回值指定应用程序在响应消息时执行的操作。 返回值 -2 表示应用程序处理了选择项目的所有方面,并且列表框无需进一步操作。 (请参阅 Remarks.) 返回值 -1 表示列表框应执行默认操作以响应击键。 返回值 0 或更高版本指定列表框中项的索引,并指示列表框应对指定项执行默认操作。

注解

返回值 -2 仅对列表框控件未转换为字符的键有效。 如果 WM_KEYDOWN 消息转换为 WM_CHAR 消息,并且应用程序处理因按下键而生成的 WM_VKEYTOITEM 消息,则列表框将忽略返回值,并针对该字符执行默认处理) 。 WM_KEYDOWN 键(如VK_UP、VK_DOWN、VK_NEXT和VK_PREVIOUS)生成的消息不会转换为 WM_CHAR 消息。 在这种情况下,捕获 WM_VKEYTOITEM 消息并返回 -2 可防止列表框执行该键的默认处理。

若要捕获生成字符消息并执行特殊处理的键,应用程序必须对列表框进行子类化,捕获 WM_KEYDOWNWM_CHAR 消息,并在子类过程中适当处理消息。

上述备注适用于使用 LBS_WANTKEYBOARDINPUT 样式创建的常规列表框。 如果列表框是所有者绘制的,则应用程序必须处理 WM_CHARTOITEM 消息。

DefWindowProc 函数返回 -1。

如果对话框过程处理此消息,它应将所需的返回值强制转换为 BOOL ,并直接返回该值。 忽略 SetWindowLong 函数设置的DWL_MSGRESULT值。

要求

要求
最低受支持的客户端
Windows Vista [仅限桌面应用]
最低受支持的服务器
Windows Server 2003 [仅限桌面应用]
标头
Winuser.h (包括 Windows.h)

另请参阅

引用

WM_CHARTOITEM

其他资源

HIWORD

LOWORD

WM_KEYDOWN