Поделиться через


сообщение 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 обрабатывают координаты как неподписанные количества.

Requirements

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Верхний колонтитул
Winuser.h (включая Windowsx.h)

См. также

Ссылка

GET_X_LPARAM

GET_Y_LPARAM

GetCapture

SetCapture

WM_МБ UTTONDBLCLK

WM_МБ UTTONDOWN

Концептуальной

Ввод с помощью мыши

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

MAKEPOINTS

ТОЧКИ