сообщение WM_МБ UTTONUP
Опубликовано, когда пользователь освобождает среднюю кнопку мыши, пока курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет размещено в окне под курсором. В противном случае сообщение публикуется в окне, которое захватило мышь.
Окно получает это сообщение через функцию WindowProc .
#define WM_MBUTTONUP 0x0208
-
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. Координата относительно левого верхнего угла клиентской области.
Обратите внимание, что при наличии контекстного меню (отображается) координаты относительно экрана, а не клиентской области. Так как TrackPopupMenu является асинхронным вызовом, а уведомление WM_МБ UTTONUP не имеет специального флага, указывающего на производность координат, приложение не может определить, являются ли координаты x,y, содержащиеся в lParam, относительно экрана или клиентской области.
Если приложение обрабатывает это сообщение, оно должно возвращать ноль.
Используйте следующий код для получения горизонтальной и вертикальной позиции:
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 обрабатывают координаты как неподписанные количества.
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
Верхний колонтитул |
|
-
Ссылка
-
Концептуальной
-
Другие ресурсы