сообщение 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, созданное в результате нажатия клавиши, поле списка игнорирует возвращаемое значение и выполняет обработку по умолчанию для этого символа). WM_KEYDOWN сообщения, созданные такими ключами, как VK_UP, VK_DOWN, VK_NEXT и VK_PREVIOUS, не переводятся в сообщения WM_CHAR. В таких случаях перехват WM_VKEYTOITEM сообщение и возврат -2 предотвращает обработку этого ключа по умолчанию.

Чтобы захватить ключи, создающие сообщение char и выполняющие специальную обработку, приложение должно подклассить поле списка, захватить как WM_KEYDOWN, так и WM_CHAR сообщения, а также обрабатывать сообщения соответствующим образом в процедуре подкласса.

Предыдущие примечания применяются к регулярным полям списка, созданным с помощью стиля LBS_WANTKEYBOARDINPUT. Если поле списка нарисовано владельцем, приложение должно обработать сообщение WM_CHARTOITEM .

Функция DefWindowProc возвращает значение -1.

Если процедура диалогового окна обрабатывает это сообщение, она должна привести требуемое возвращаемое значение к ЛОГИЧЕСКОЕ значение и вернуть значение напрямую. Значение DWL_MSGRESULT, заданное функцией SetWindowLong , игнорируется.

Requirements

Требование Значение
Минимальная версия клиента
Windows Vista [только классические приложения]
Минимальная версия сервера
Windows Server 2003 [только классические приложения]
Верхний колонтитул
Winuser.h (включая Windows.h)

См. также

Ссылка

WM_CHARTOITEM

Другие ресурсы

HIWORD

LOWORD

WM_KEYDOWN