сообщение WM_VKEYTOITEM

Отправляется списком со стилем LBS_WANTKEYBOARDINPUT своему владельцу в ответ на сообщение WM_KEYDOWN .

WM_VKEYTOITEM

    WPARAM wParam;
    LPARAM lParam; 

Параметры

wParam

LoWORD задает код виртуального ключа клавиши, нажатой пользователем. HIWORD указывает текущую позицию курсора.

lParam

Дескриптор списка.

Возвращаемое значение

Возвращаемое значение указывает действие, выполняемое приложением в ответ на сообщение. Возвращаемое значение -2 указывает, что приложение обрабатывает все аспекты выбора элемента и не требует дальнейших действий в списке. (См. примечания.) Возвращаемое значение -1 указывает, что в списке должно выполняться действие по умолчанию в ответ на нажатие клавиш. Возвращаемое значение 0 или больше указывает индекс элемента в списке и указывает, что поле списка должно выполнять действие по умолчанию для нажатия клавиш для указанного элемента.

Remarks

Возвращаемое значение -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.

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

Требования

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

См. также

Ссылки

WM_CHARTOITEM

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

HIWORD

LOWORD

WM_KEYDOWN