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

另请参阅

IPointerInactive