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


сообщение WM_NCXBUTTONDOWN

Опубликовано, когда пользователь нажимает XBUTTON1 или XBUTTON2, пока курсор находится в неклиентной области окна. Это сообщение публикуется в окне, содержащее курсор. Если окно захватило мышь, это сообщение не опубликовано.

Окно получает это сообщение через функцию WindowProc.

#define WM_NCXBUTTONDOWN                0x00AB

Параметры

wParam

Слово с низким порядком указывает значение hit-test, возвращаемое функцией DefWindowProc от обработки сообщения WM_NCHITTEST. Список значений хит-теста см. в WM_NCHITTEST. Слово высокого порядка указывает, какая кнопка была нажата. Это может быть одно из следующих значений.

Ценность Значение
XBUTTON1
0x0001
XBUTTON1 был нажат.
XBUTTON2
0x0002
XBUTTON2 была нажата.

lParam

Указатель на структуру POINT, содержащую координаты X и Y курсора. Координаты относительно левого верхнего угла экрана.

Возвращаемое значение

Если приложение обрабатывает это сообщение, оно должно возвращать TRUE. Дополнительные сведения об обработке возвращаемого значения см. в разделе "Примечания".

Замечания

Windows поддерживает мыши с пятью кнопками: слева, серединой и справа, а также двумя дополнительными кнопками, называемыми XBUTTON1 и XBUTTON2. Кнопки XBUTTON1 и XBUTTON2 часто расположены на стороне мыши рядом с базой. Эти дополнительные кнопки не присутствуют на всех мышах. При наличии кнопки XBUTTON1 и XBUTTON2 часто сопоставляются с функцией приложения, например переадресации вперед и назад в веб-браузере.

Используйте следующий код, чтобы получить сведения в параметре wParam.

nHittest = GET_NCHITTEST_WPARAM(wParam); 
fwButton = GET_XBUTTON_WPARAM(wParam); 

Можно также использовать следующий код, чтобы получить координаты x и y из lParam:

xPos = GET_X_LPARAM(lParam); 
yPos = GET_Y_LPARAM(lParam); 

Важный

Не используйте loWORD или макросы HIWORD для извлечения координат курсора x-и y, так как эти макросы возвращают неверные результаты в системах с несколькими мониторами. Системы с несколькими мониторами могут иметь отрицательные координаты x и y, а LOWORD и HIWORD рассматривать координаты как неподписанные количества.

По умолчанию функция DefWindowProc проверяет указанную точку, чтобы получить положение курсора и выполнить соответствующее действие. При необходимости он отправляет в окно сообщение WM_SYSCOMMAND.

В отличие от WM_NCLBUTTONDOWN, WM_NCMBUTTONDOWNи WM_NCRBUTTONDOWN сообщений приложение должно возвращать TRUE из этого сообщения, если он обрабатывает его. Это позволит программному обеспечению, которое имитирует это сообщение в системах Windows до Windows 2000, чтобы определить, обработана ли процедура окна сообщение или вызвана DefWindowProc для его обработки.

Требования

Требование Ценность
Минимальный поддерживаемый клиент
Windows 2000 Профессиональный [только классические приложения]
Минимальный поддерживаемый сервер
Windows 2000 Server [только классические приложения]
Заголовок
Winuser.h (включая Windowsx.h)

См. также

Справочник

DefWindowProc

GET_X_LPARAM

GET_Y_LPARAM

WM_NCHITTEST

WM_NCXBUTTONDBLCLK

WM_NCXBUTTONUP

WM_SYSCOMMAND

концептуальные

ввод мыши

другие ресурсы

MAKEPOINTS

ТОЧКИ