Прочитать на английском

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


сообщение WM_NCXBUTTONDOWN

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

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

#define WM_NCXBUTTONDOWN                0x00AB

Параметры

wParam

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

Значение Значение
XBUTTON1
0x0001
Первая кнопка X была нажата.
XBUTTON2
0x0002
Нажата вторая кнопка X.

lParam

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

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

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

Замечания

Используйте следующий код, чтобы получить сведения в параметре 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_NCМБ UTTONDOWN и WM_NCRBUTTONDOWN сообщений приложение должно возвращать значение TRUE из этого сообщения, если он обрабатывает его. Это позволит программному обеспечению, которое имитирует это сообщение в системах Windows раньше, чем Windows 2000, чтобы определить, обработана ли процедура окна сообщение или с именем DefWindowProc для обработки.

Requirements

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

См. также

Ссылка

DefWindowProc

GET_X_LPARAM

GET_Y_LPARAM

WM_NCHITTEST

WM_NCXBUTTONDBLCLK

WM_NCXBUTTONUP

WM_SYSCOMMAND

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

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

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

MAKEPOINTS

ТОЧКИ