WM_NCPOINTERUPDATE 消息
当指针在窗口的非客户端区域上产生接触,或悬停的未捕获到的触点移动到窗口的非客户端区域上方时发布,以提供更新。 指针悬停时,消息将针对指针恰好在其之上的窗口。 当指针与图面接触时,指针会被隐式捕获到指针产生接触时下方的窗口,该窗口会继续接收指针的输入,直到它中断接触为止。
如果窗口已捕获此指针,则不会发布此消息。 而是将 WM_POINTERUPDATE 发布到已捕获此指针的窗口。
![重要提示]
桌面应用应能识别 DPI。 如果应用无法识别 DPI,则指针消息中包含的屏幕坐标和相关结构可能会由于 DPI 虚拟化而显示不准确。 DPI 虚拟化会为不识别 DPI 且默认处于活动状态的应用程序提供自动缩放支持(用户可以将其关闭)。 有关详细信息,请参阅编写高 DPI Win32 应用程序。
#define WM_NCPOINTERUPDATE 0x0241
参数
-
wParam
-
包含指针标识符和其他信息。 使用以下宏检索此信息。
GET_POINTERID_WPARAM(wParam):指针标识符
HIWORD(wParam):从处理 WM_NCHITTEST 消息返回的命中测试值。
-
lParam
-
包含指针的点位置。
注意
由于指针可能通过非普通区域与设备联系,因此,此点位置可能是更复杂的指针区域的简化。 尽可能使用完整的指针区域信息,而不是点位置。
使用以下宏检索点的物理屏幕坐标。
- GET_X_LPARAM(lParam):x(水平点)坐标。
- GET_Y_LPARAM(lParam):y(垂直点)坐标。
返回值
如果应用程序处理此消息,它应返回零。
如果应用程序未处理此消息,则应调用 DefWindowProc。
注解
如果应用程序未处理此消息,DefWindowProc 可能会执行一个或多个系统操作,具体取决于消息中包含的命中测试结果。 通常,应用程序不需要处理此消息。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 8 [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2012 [仅限桌面应用] |
标头 |
|