сообщение WM_XBUTTONDOWN
Опубликовано, когда пользователь нажимает XBUTTON1 или XBUTTON2, пока курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет размещено в окне под курсором. В противном случае сообщение публикуется в окне, которое захватило мышь.
Окно получает это сообщение через функцию WindowProc.
#define WM_XBUTTONDOWN 0x020B
-
wParam
-
Слово с низким порядком указывает, отключены ли различные виртуальные ключи. Это может быть одно или несколько следующих значений.
Ценность Значение - MK_CONTROL
- 0x0008
Клавиша CTRL вниз. - MK_LBUTTON
- 0x0001
Левая кнопка мыши вниз. - MK_MBUTTON
- 0x0010
Средняя кнопка мыши вниз. - MK_RBUTTON
- 0x0002
Правая кнопка мыши вниз. - MK_SHIFT
- 0x0004
Клавиша SHIFT вниз. - MK_XBUTTON1
- 0x0020
XBUTTON1 вниз. - MK_XBUTTON2
- 0x0040
XBUTTON2 вниз. Слово с высоким порядком указывает, какая кнопка была нажата. Это может быть одно из следующих значений.
Ценность Значение - XBUTTON1
- 0x0001
Щелкните XBUTTON1. - XBUTTON2
- 0x0002
Щелкните XBUTTON2. -
lParam
-
Слово с низким порядком указывает координату x курсора. Координата относительно левого верхнего угла клиентской области.
Слово с высоким порядком задает координату курсора y. Координата относительно левого верхнего угла клиентской области.
Если приложение обрабатывает это сообщение, оно должно возвращать TRUE. Дополнительные сведения об обработке возвращаемого значения см. в разделе "Примечания".
Windows поддерживает мыши с пятью кнопками: слева, серединой и справа, а также двумя дополнительными кнопками, называемыми XBUTTON1 и XBUTTON2. Кнопки XBUTTON1 и XBUTTON2 часто расположены на стороне мыши рядом с базой. Эти дополнительные кнопки не присутствуют на всех мышах. При наличии кнопки XBUTTON1 и XBUTTON2 часто сопоставляются с функцией приложения, например переадресации вперед и назад в веб-браузере.
Используйте следующий код, чтобы получить сведения в параметре wParam:
fwKeys = GET_KEYSTATE_WPARAM (wParam);
fwButton = GET_XBUTTON_WPARAM (wParam);
Используйте следующий код для получения горизонтальной и вертикальной позиции:
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
Как отмечалось выше, координата x находится в низком порядке
Важно!
Не используйте loWORD или макросы HIWORD для извлечения координат курсора x-и y, так как эти макросы возвращают неверные результаты в системах с несколькими мониторами. Системы с несколькими мониторами могут иметь отрицательные координаты x и y, а LOWORD и HIWORD рассматривать координаты как неподписанные количества.
В отличие от WM_LBUTTONDOWN, WM_MBUTTONDOWNи сообщений WM_RBUTTONDOWN приложение должно возвращать TRUE из этого сообщения, если он обрабатывает его. Это позволяет программному обеспечению, которое имитирует это сообщение в системах Windows ранее Windows 2000, чтобы определить, обрабатывается ли процедура окна или вызывается DefWindowProc для обработки.
Требование | Ценность |
---|---|
Минимальный поддерживаемый клиент |
Windows 2000 Профессиональный [только классические приложения] |
Минимальный поддерживаемый сервер |
Windows 2000 Server [только классические приложения] |
Заголовок |
|
-
Справочник
-
концептуальные
-
другие ресурсы