POINTERINACTIVE 列舉 (ocidl.h)
指出 對象的啟用原則,並用於 IPointerInactive::GetActivationPolicy 方法中。
Syntax
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 值可用來支援非使用中物件的拖放作業。 非使用中對象沒有視窗可自行註冊為潛在的置放目標。 大部分的容器都會忽略內嵌的非使用中對象作為置放目標,因為與啟用它們相關聯的額外負荷。
除了在拖放作業期間將滑鼠指標放在物件上方時啟動物件,容器可以先 查詢Interface 來判斷非使用中物件是否支援 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。 在此情況下,容器應該會在物件啟用另一個物件時,立即嘗試停用物件。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
標頭 | ocidl.h |