POINTERINACTIVE 枚举 (ocidl.h)
指示 对象的激活策略,在 IPointerInactive::GetActivationPolicy 方法中使用。
语法
typedef enum tagPOINTERINACTIVE {
POINTERINACTIVE_ACTIVATEONENTRY = 1,
POINTERINACTIVE_DEACTIVATEONLEAVE = 2,
POINTERINACTIVE_ACTIVATEONDRAG = 4
} POINTERINACTIVE;
常量
POINTERINACTIVE_ACTIVATEONENTRY 值:1 当鼠标在鼠标移动操作期间进入对象时,应该会就地激活该对象。 |
POINTERINACTIVE_DEACTIVATEONLEAVE 值: 2 当鼠标在鼠标移动操作期间离开对象时,应该会停用该对象。 |
POINTERINACTIVE_ACTIVATEONDRAG 值: 4 当鼠标在拖放操作期间被拖到该对象上时,应该会就地激活该对象。 |
注解
有关使用 POINTERINACTIVE_ACTIVATEONENTRY 和 POINTERINACTIVE_DEACTIVATEONLEAVE 值的详细信息,请参阅 IPointerInactive::GetActivationPolicy 方法。
POINTERINACTIVE_ACTIVATEONDRAG 值可用于支持对非活动对象执行拖放操作。 非活动对象没有将自身注册为潜在放置目标的窗口。 由于与激活它们相关的开销,大多数容器会忽略嵌入的非活动对象作为放置目标。
作为在拖放操作期间鼠标指针位于对象上方时激活对象的替代方法,容器可以先 QueryInterface 来确定非活动对象是否支持 IPointerInactive。 然后,如果对象不支持 IPointerInactive,容器可以假定它不是放置目标。 如果 对象确实支持 IPointerInactive,则容器将调用 IPointerInactive::GetActivationPolicy 方法。 如果设置了 POINTERINACTIVE_ACTIVATEONDRAG 值,容器将就地激活对象,以便对象可以注册其自己的 IDropTarget 接口。
发生所有这些操作时,容器正在处理其自己的 IDropTarget::D ragOver 方法。 若要完成该方法,容器将返回 pdwEffect 参数DROPEFFECT_NONE。 然后,通过调用容器的 IDropTarget::D ragLeave ,然后调用对象的 IDropTarget::D ragEnter 继续拖放操作。
如果放置发生在嵌入的对象上,则对象是 UI 激活的,当焦点再次更改时,该对象将停用 UI。 如果对象上未发生放置,则容器应在下次获取对其自己的 IDropTarget::D ragEnter 的调用时停用该对象。 删除可以在第三个活动对象上发生,而无需对容器的 IDropTarget::D ragEnter 进行干预调用。 在这种情况下,容器应尽快尝试停用对象,例如,当它 UI 激活另一个对象时。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | ocidl.h |