IPointerInactive::OnInactiveMouseMove 方法 (ocidl.h)
通知对象鼠标指针已移到该对象上,以便对象可以触发鼠标事件。 当非活动对象位于鼠标指针下时,容器在收到WM_MOUSEMOVE方法时调用此方法。
语法
HRESULT OnInactiveMouseMove(
[in] LPCRECT pRectBounds,
[in] LONG x,
[in] LONG y,
[in] DWORD grfKeyState
);
参数
[in] pRectBounds
对象边框,采用包含窗口的客户端坐标。 当收到WM_MOUSEMOVE消息时,此参数告知对象其在屏幕上的确切位置和大小。 此值以客户端坐标系的单位指定。
[in] x
鼠标位置的水平坐标,以客户端包含窗口的单位为单位。
[in] y
鼠标位置的垂直坐标,以客户端包含窗口的单位为单位。
[in] grfKeyState
键盘上键盘修改键的当前状态。 可能的值可以是MK_CONTROL、MK_SHIFT、MK_ALT、MK_BUTTON、MK_LBUTTON、MK_MBUTTON和MK_RBUTTON的任何值的组合。
返回值
如果该方法成功,则返回值S_OK。 否则,它将E_FAIL。
注解
容器通过调用 IPointerInactive::GetActivationPolicy 方法检查对象的激活策略后,调用此方法以通知对象鼠标指针位于对象上方。 如果对象尚未请求通过该调用就地激活,则只要鼠标指针停留在对象上方,容器就会通过调用 OnInactiveMouseMove 将后续WM_MOUSEMOVE消息调度到非活动对象。 然后,对象可以触发鼠标移动事件。
为了避免舍入错误并使对象实现者的作业更容易,此方法采用其包含客户端窗口的单位(即显示对象的窗口,而不是通常的 HIMETRIC 单位)的窗口坐标。 因此,当对象处于活动状态和处于非活动状态时,可以使用相同的坐标和代码路径。 窗口坐标指定鼠标位置。 边界矩形也在同一坐标系中指定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | ocidl.h |