сообщение WM_XBUTTONDOWN
Опубликовано, когда пользователь нажимает первую или вторую кнопку X, пока курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет размещено в окне под курсором. В противном случае сообщение публикуется в окне, которое захватило мышь.
Окно получает это сообщение через функцию WindowProc .
#define WM_XBUTTONDOWN 0x020B
-
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 вниз. Слово с высоким порядком указывает, какая кнопка была нажата. Может быть одним из указанных далее.
Значение Значение - XBUTTON1
- 0x0001
Первая кнопка X была нажата. - XBUTTON2
- 0x0002
Нажата вторая кнопка X. -
lParam
-
Слово с низким порядком указывает координату x курсора. Координата относительно левого верхнего угла клиентской области.
Слово с высоким порядком задает координату курсора y. Координата относительно левого верхнего угла клиентской области.
Если приложение обрабатывает это сообщение, оно должно возвращать значение TRUE. Дополнительные сведения об обработке возвращаемого значения см. в разделе "Примечания".
Используйте следующий код, чтобы получить сведения в параметре wParam :
fwKeys = GET_KEYSTATE_WPARAM (wParam);
fwButton = GET_XBUTTON_WPARAM (wParam);
Используйте следующий код для получения горизонтальной и вертикальной позиции:
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
Как отмечалось выше, координата x находится в низком порядке, чем возвращаемое значение; координата y находится в коротком формате высокого порядка (оба представляют подписанные значения, так как они могут принимать отрицательные значения в системах с несколькими мониторами). Если возвращаемое значение назначено переменной, можно использовать макрос MAKEPOINTS для получения структуры POINTS из возвращаемого значения. Вы также можете использовать макрос GET_X_LPARAM или GET_Y_LPARAM для извлечения координат x-или y.
Важно!
Не используйте макросы LOWORD или HIWORD для извлечения координат x-и y позиции курсора, так как эти макросы возвращают неверные результаты в системах с несколькими мониторами. Системы с несколькими мониторами могут иметь отрицательные координаты x и y, а LOWORD и HIWORD обрабатывают координаты как неподписанные количества.
В отличие от WM_LBUTTONDOWN, WM_МБ UTTONDOWN и WM_RBUTTONDOWN сообщений приложение должно возвращать значение TRUE из этого сообщения, если он обрабатывает его. Это позволяет программному обеспечению, которое имитирует это сообщение в системах Windows ранее, чем Windows 2000, чтобы определить, обработана ли процедура окна сообщение или с именем DefWindowProc для его обработки.
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
Верхний колонтитул |
|
-
Ссылка
-
Концептуальной
-
Другие ресурсы