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

包含指针的点位置。

注意

由于指针可能通过非普通区域与设备联系,因此此点位置可能是更复杂的指针区域的简化。 尽可能使用完整的指针区域信息,而不是点位置。

使用以下宏检索点的物理屏幕坐标。

返回值

如果应用程序处理此消息,它应返回零。

如果应用程序未处理此消息,则应调用 DefWindowProc

言论

窗口可以使用 WM_POINTERENTER 通知向用户提供反馈,而指针位于其图面上,或者对指针在其图面上的存在做出反应。

此通知仅发送到接收指针输入的窗口。 下表列出了发送此通知的一些情况。

行动 标志集 发送到的通知
新指针进入检测范围(悬停)。 IS_POINTER_NEW_WPARAM
IS_POINTER_INRANGE_WPARAM
指针进入检测范围的窗口。
悬停指针在窗口边界内交叉。 IS_POINTER_INRANGE_WPARAM
指针交叉的窗口。

![重要提示]
当窗口失去指针的捕获并且它收到 WM_POINTERCAPTURECHANGED 通知时,它通常不会收到任何进一步的通知。 因此,请务必不要根据均匀配对 WM_POINTERDOWN/WM_POINTERUPWM_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