WM_VKEYTOITEM 消息

使用 LBS\_WANTKEYBOARDINPUT 样式的列表框发送给其所有者,以响应 WM\_KEYDOWN 消息。

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 会阻止列表框执行针对该键的默认处理。

若要捕获生成字符消息并执行特殊处理的键,应用程序必须将列表框设为子类、捕获 WM_KEYDOWNWM_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