Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Отправляется в окно, чтобы определить, какая часть окна соответствует определенной координате экрана. Это может произойти, например, при перемещении курсора, нажатии или освобождении кнопки мыши или в ответ на вызов функции, например WindowFromPoint. Если мышь не захвачена, сообщение отправляется в окно под курсором. В противном случае сообщение отправляется в окно, которое захватило мышь.
Окно получает это сообщение через функцию WindowProc .
#define WM_NCHITTEST 0x0084
Параметры
-
wParam
-
Этот параметр не используется.
-
lParam
-
Слово с низким порядком указывает координату x курсора. Координата относительно левого верхнего угла экрана.
Слово с высоким порядком задает координату курсора y. Координата относительно левого верхнего угла экрана.
Возвращаемое значение
Возвращаемое значение функции DefWindowProc является одним из следующих значений, указывая положение горячей точки курсора.
| Возврат кода или значения | Description |
|---|---|
|
В границе окна, у которых нет границы размера. |
|
В нижней горизонтальной границе окна с изменением размера (пользователь может щелкнуть мышь, чтобы изменить размер окна по вертикали). |
|
В левом нижнем углу границы окна с изменением размера (пользователь может щелкнуть мышь, чтобы изменить размер окна по диагонали). |
|
В правом нижнем углу границы окна с изменением размера (пользователь может щелкнуть мышь, чтобы изменить размер окна по диагонали). |
|
В строке заголовка. |
|
В клиентской области. |
|
В кнопке "Закрыть ". |
|
В фоновом режиме экрана или в разделительной строке между окнами (аналогично HTNOWHERE, за исключением того, что функция DefWindowProc создает системный сигнал для указания ошибки). |
|
В поле размера (аналогично HTSIZE). |
|
В кнопке справки. |
|
На горизонтальной полосе прокрутки. |
|
В левой границе окна с изменением размера (пользователь может щелкнуть мышь, чтобы изменить размер окна по горизонтали). |
|
В меню. |
|
В кнопке "Развернуть ". |
|
В кнопке "Свернуть ". |
|
В фоновом режиме экрана или на разделительной линии между окнами. |
|
В кнопке "Свернуть ". |
|
В правой границе окна с изменением размера (пользователь может щелкнуть мышь, чтобы изменить размер окна по горизонтали). |
|
В поле размера (аналогично HTGROWBOX). |
|
В меню окна или в кнопке "Закрыть " в дочернем окне. |
|
В верхней горизонтальной границе окна. |
|
В левом верхнем углу границы окна. |
|
В правом верхнем углу границы окна. |
|
В окне, которое в настоящее время охватывает другое окно в том же потоке (сообщение будет отправлено в базовые окна в одном потоке, пока один из них не возвращает код, который не является HTTRANSPARENT). |
|
В вертикальной полосе прокрутки. |
|
В кнопке "Развернуть ". |
Замечания
Используйте следующий код для получения горизонтальной и вертикальной позиции:
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 Vista: при создании пользовательских кадров, включающих стандартные кнопки подпись, сначала необходимо передать это сообщение в функцию DwmDefWindowProc. Это позволяет диспетчеру окон рабочего стола (DWM) предоставлять тестирование попаданий для кнопок подпись. Если DwmDefWindowProc не обрабатывает сообщение, может потребоваться дальнейшая обработка WM_NCHITTEST .
Requirements
| Требование | Значение |
|---|---|
| Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
| Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
| Верхний колонтитул |
|
См. также
-
Ссылка
-
Концептуальной
-
Другие ресурсы