сообщение 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 [только классические приложения] |
Верхний колонтитул |
|
См. также
-
Ссылка
-
Другие ресурсы