POINTERINACTIVE
列挙型メンバー 3
| 名前 | 10進 | 16進 | 説明 |
|---|---|---|---|
| POINTERINACTIVE_ACTIVATEONENTRY | 1 | 0x1 | マウス移動操作中にマウスがオブジェクトに入ったときに、そのオブジェクトをインプレースでアクティブ化します。 |
| POINTERINACTIVE_DEACTIVATEONLEAVE | 2 | 0x2 | マウス移動操作中にマウスがオブジェクトから離れたときに、そのオブジェクトを非アクティブ化します。 |
| POINTERINACTIVE_ACTIVATEONDRAG | 4 | 0x4 | ドラッグ アンド ドロップ操作中にマウスがオブジェクトの上にドラッグされたときに、そのオブジェクトをインプレースでアクティブ化します。 |
公式ドキュメント
オブジェクトのアクティブ化ポリシーを示し、IPointerInactive::GetActivationPolicy メソッドで使用されます。
解説(Remarks)
POINTERINACTIVE_ACTIVATEONENTRY および POINTERINACTIVE_DEACTIVATEONLEAVE の値の使用方法の詳細については、IPointerInactive::GetActivationPolicy メソッドを参照してください。
POINTERINACTIVE_ACTIVATEONDRAG の値は、非アクティブなオブジェクトに対するドラッグ アンド ドロップ操作をサポートするために使用できます。非アクティブなオブジェクトには、自身をドロップ ターゲット候補として登録するためのウィンドウがありません。ほとんどのコンテナーは、アクティブ化に伴うオーバーヘッドのため、埋め込まれた非アクティブなオブジェクトをドロップ ターゲットとして無視します。
ドラッグ アンド ドロップ操作中にマウス ポインターがオブジェクトの上にあるときにオブジェクトをアクティブ化する方法の代わりに、コンテナーはまず QueryInterface を呼び出して、非アクティブなオブジェクトが IPointerInactive をサポートしているかどうかを判断できます。オブジェクトが IPointerInactive をサポートしていない場合、コンテナーはそのオブジェクトがドロップ ターゲットではないと見なすことができます。オブジェクトが IPointerInactive をサポートしている場合、コンテナーは IPointerInactive::GetActivationPolicy メソッドを呼び出します。POINTERINACTIVE_ACTIVATEONDRAG の値が設定されている場合、コンテナーはオブジェクトをインプレースでアクティブ化し、オブジェクトが自身の IDropTarget インターフェイスを登録できるようにします。
これらの処理がすべて行われている間、コンテナーは自身の IDropTarget::DragOver メソッドを処理しています。このメソッドを完了するには、コンテナーは pdwEffect パラメーターに DROPEFFECT_NONE を返します。その後、コンテナーの IDropTarget::DragLeave が呼び出され、続いてオブジェクトの IDropTarget::DragEnter が呼び出されて、ドラッグ アンド ドロップ操作が続行されます。
埋め込みオブジェクトの上でドロップが発生した場合、そのオブジェクトは UI アクティブ化され、フォーカスが再び変更されたときに UI 非アクティブ化されます。オブジェクトの上でドロップが発生しなかった場合、コンテナーは次に自身の IDropTarget::DragEnter が呼び出されたときに、そのオブジェクトを非アクティブ化する必要があります。コンテナーの IDropTarget::DragEnter が呼び出されないまま、3 番目のアクティブなオブジェクトの上でドロップが発生する場合もあります。この場合、コンテナーは、たとえば別のオブジェクトを UI アクティブ化するときなど、できるだけ早くそのオブジェクトを非アクティブ化するようにしてください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
列挙メンバーの定義。HSP タブは #define global(値は16進)。
typedef enum POINTERINACTIVE : int {
POINTERINACTIVE_ACTIVATEONENTRY = 1,
POINTERINACTIVE_DEACTIVATEONLEAVE = 2,
POINTERINACTIVE_ACTIVATEONDRAG = 4
} POINTERINACTIVE;public enum POINTERINACTIVE : int
{
POINTERINACTIVE_ACTIVATEONENTRY = 1,
POINTERINACTIVE_DEACTIVATEONLEAVE = 2,
POINTERINACTIVE_ACTIVATEONDRAG = 4,
}Public Enum POINTERINACTIVE As Integer
POINTERINACTIVE_ACTIVATEONENTRY = 1
POINTERINACTIVE_DEACTIVATEONLEAVE = 2
POINTERINACTIVE_ACTIVATEONDRAG = 4
End Enumimport enum
class POINTERINACTIVE(enum.IntEnum):
POINTERINACTIVE_ACTIVATEONENTRY = 1
POINTERINACTIVE_DEACTIVATEONLEAVE = 2
POINTERINACTIVE_ACTIVATEONDRAG = 4// POINTERINACTIVE
pub const POINTERINACTIVE_ACTIVATEONENTRY: i32 = 1;
pub const POINTERINACTIVE_DEACTIVATEONLEAVE: i32 = 2;
pub const POINTERINACTIVE_ACTIVATEONDRAG: i32 = 4;// POINTERINACTIVE
const (
POINTERINACTIVE_ACTIVATEONENTRY int32 = 1
POINTERINACTIVE_DEACTIVATEONLEAVE int32 = 2
POINTERINACTIVE_ACTIVATEONDRAG int32 = 4
)const
POINTERINACTIVE_ACTIVATEONENTRY = 1;
POINTERINACTIVE_DEACTIVATEONLEAVE = 2;
POINTERINACTIVE_ACTIVATEONDRAG = 4;// POINTERINACTIVE
pub const POINTERINACTIVE_ACTIVATEONENTRY: i32 = 1;
pub const POINTERINACTIVE_DEACTIVATEONLEAVE: i32 = 2;
pub const POINTERINACTIVE_ACTIVATEONDRAG: i32 = 4;const
POINTERINACTIVE_ACTIVATEONENTRY* = 1
POINTERINACTIVE_DEACTIVATEONLEAVE* = 2
POINTERINACTIVE_ACTIVATEONDRAG* = 4enum POINTERINACTIVE : int {
POINTERINACTIVE_ACTIVATEONENTRY = 1,
POINTERINACTIVE_DEACTIVATEONLEAVE = 2,
POINTERINACTIVE_ACTIVATEONDRAG = 4,
}#define global POINTERINACTIVE_ACTIVATEONENTRY 0x1
#define global POINTERINACTIVE_DEACTIVATEONLEAVE 0x2
#define global POINTERINACTIVE_ACTIVATEONDRAG 0x4