WM_POINTERENTER 消息
当新指针进入窗口上方的检测范围 (悬停) 或现有指针在窗口边界内移动时,发送到窗口。
窗口通过其 WindowProc 函数接收此消息。
![重要提示]
桌面应用应可感知 DPI。 如果你的应用无法识别 DPI,则指针消息和相关结构中包含的屏幕坐标可能会由于 DPI 虚拟化而显示不准确。 DPI 虚拟化为非 DPI 感知且默认处于活动状态的应用程序提供自动缩放支持, (用户可以) 将其关闭。 有关详细信息,请参阅 编写高 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 [仅限桌面应用] |
标头 |
|