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 を呼び出さずに、3 番目のアクティブ オブジェクトでドロップが発生する可能性があります。 この場合、コンテナーは、UI で別のオブジェクトをアクティブ化する場合など、可能な限り早くオブジェクトを非アクティブ化する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
Header | ocidl.h |