сообщение WM_LBUTTONDOWN
Опубликовано, когда пользователь нажимает левую кнопку мыши, пока курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет размещено в окне под курсором. В противном случае сообщение публикуется в окне, которое захватило мышь.
Окно получает это сообщение через функцию WindowProc .
#define WM_LBUTTONDOWN 0x0201
Параметры
-
wParam
-
Указывает, отключены ли различные виртуальные ключи. Этот параметр может быть одним или несколькими из следующих значений.
Значение Значение - MK_CONTROL
- 0x0008
Клавиша CTRL вниз. - MK_LBUTTON
- 0x0001
Левая кнопка мыши вниз. - MK_МБ UTTON
- 0x0010
Средняя кнопка мыши вниз. - MK_RBUTTON
- 0x0002
Правая кнопка мыши вниз. - MK_SHIFT
- 0x0004
Клавиша SHIFT вниз. - MK_XBUTTON1
- 0x0020
Первая кнопка X вниз. - MK_XBUTTON2
- 0x0040
Вторая кнопка X вниз. -
lParam
-
Слово с низким порядком указывает координату x курсора. Координата относительно левого верхнего угла клиентской области.
Слово с высоким порядком задает координату курсора y. Координата относительно левого верхнего угла клиентской области.
Возвращаемое значение
Если приложение обрабатывает это сообщение, оно должно возвращать ноль.
Пример
LRESULT CALLBACK WndProc(_In_ HWND hWnd, _In_ UINT msg, _In_ WPARAM wParam, _In_ LPARAM lParam)
{
POINT pt;
switch (msg)
{
case WM_LBUTTONDOWN:
{
pt.x = GET_X_LPARAM(lParam);
pt.y = GET_Y_LPARAM(lParam);
}
break;
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
}
return 0;
}
Дополнительные примеры см. в классических примерах Windows на сайте GitHub.
Замечания
Как отмечалось выше, координата x находится в низком порядке, чем возвращаемое значение; координата y находится в коротком формате высокого порядка (оба представляют подписанные значения, так как они могут принимать отрицательные значения в системах с несколькими мониторами). Если возвращаемое значение назначено переменной, можно использовать макрос MAKEPOINTS для получения структуры POINTS из возвращаемого значения. Вы также можете использовать макрос GET_X_LPARAM или GET_Y_LPARAM для извлечения координат x-или y.
Важно!
Не используйте макросы LOWORD или HIWORD для извлечения координат x-и y позиции курсора, так как эти макросы возвращают неверные результаты в системах с несколькими мониторами. Системы с несколькими мониторами могут иметь отрицательные координаты x и y, а LOWORD и HIWORD обрабатывают координаты как неподписанные количества.
Чтобы определить, что клавиша ALT была нажата, проверка ли GetKeyState с VK_MENU< 0. Обратите внимание, что это не должно быть GetAsyncKeyState.
Requirements
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
Верхний колонтитул |
|
См. также
-
Ссылка
-
Концептуальной
-
Другие ресурсы