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


сообщение WM_POINTERENTER

Отправляется в окно, когда новый указатель вводит диапазон обнаружения по окну (наведите указатель) или когда существующий указатель перемещается в границах окна.

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

! [Важно]
Классические приложения должны быть осведомлены о DPI. Если приложение не учитывает DPI, координаты экрана, содержащиеся в сообщениях указателя и связанных структурах, могут отображаться неточными из-за виртуализации DPI. Виртуализация DPI обеспечивает автоматическую поддержку масштабирования приложений, которые не поддерживают DPI и активны по умолчанию (пользователи могут отключить его). Дополнительные сведения см. в записи High-DPI приложений Win32.

#define WM_POINTERENTER                 0x0249

Параметры

wParam

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

  • GET_POINTERID_WPARAM(wParam): идентификатор указателя.
  • IS_POINTER_NEW_WPARAM(wParam): указывает, является ли это первым сообщением, созданным новым указателем, включаемым диапазоном обнаружения (наведение указателя).
  • IS_POINTER_INRANGE_WPARAM(wParam): указывает, было ли это сообщение создано указателем, который не оставил диапазон обнаружения. Этот флаг всегда устанавливается для сообщений WM_POINTERENTER.
  • IS_POINTER_INCONTACT_WPARAM(wParam): флаг, указывающий, создается ли это сообщение указателем, который находится в контакте. Этот флаг не задан для указателя в диапазоне обнаружения (наведите указатель на указатель).

lParam

Содержит расположение указателя.

Заметка

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

Чтобы получить координаты физического экрана точки, используйте следующие макросы.

  • GET_X_LPARAM(lParam): координата x (горизонтальная точка).
  • GET_Y_LPARAM(lParam): координата y (вертикальная точка).

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

Если приложение обрабатывает это сообщение, оно должно возвращать ноль.

Если приложение не обрабатывает это сообщение, он должен вызывать DefWindowProc.

Замечания

Уведомление WM_POINTERENTER может использоваться окном для предоставления отзывов пользователю, пока указатель находится на его поверхности или в противном случае реагирует на наличие указателя на его поверхность.

Это уведомление отправляется только в окно, которое получает входные данные для указателя. В следующей таблице перечислены некоторые ситуации, в которых отправляется это уведомление.

Действие Набор флагов Уведомления, отправленные в
Новый указатель вводит диапазон обнаружения (наведите указатель мыши). IS_POINTER_NEW_WPARAM
IS_POINTER_INRANGE_WPARAM
Окно, по которому указатель входит в диапазон обнаружения.
Указатель наведении указателя пересекает границы окна. IS_POINTER_INRANGE_WPARAM
Окно, в котором указатель пересекся.

! [Важно]
Когда окно теряет запись указателя и получает уведомление WM_POINTERCAPTURECHANGED, обычно оно не получит никаких дополнительных уведомлений. По этой причине важно не делать никаких предположений на основе равномерно парных WM_POINTERDOWN/WM_POINTERUP или WM_POINTERENTER/WM_POINTERLEAVE уведомлений.

Когда входные данные приходят из мыши, в результате интеграции с сообщением мыши и указателя WM_POINTERENTER не отправляются.

Требования

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

См. также

сообщений

Справочник

GET_POINTERID_WPARAM

IS_POINTER_NEW_WPARAM

IS_POINTER_INRANGE_WPARAM

IS_POINTER_INCONTACT_WPARAM