仮想 DWORD GetActivationPolicy ( );
戻り値
POINTERINACTIVE列挙体からのフラグの組み合わせ。可能なフラグです。:
POINTERINACTIVE_ACTIVATEONENTRY
オブジェクト インプレース、マウス、マウス移動操作中に入るときにアクティブにする必要があります。
POINTERINACTIVE_DEACTIVATEONLEAVE
マウスがマウス移動操作中にオブジェクトを離れたときに、オブジェクトを無効にしてください。
POINTERINACTIVE_ACTIVATEONDRAG
オブジェクトする必要があります場所、ドラッグ中にマウスが上をドラッグするとアクティブにしてドロップ操作。
解説
IPointerInactiveインターフェイスをサポートするコントロールの既定のアクティベーション動作を変更するには、この関数をオーバーライドします。
IPointerInactiveインターフェイスを有効にした場合は、コンテナーがWM_SETCURSORおよびWM_MOUSEMOVEメッセージをデリゲートします。マウスの調整を適切に調整した後、このインターフェイスのCOleControlの実装これらコントロールのメッセージ マップを通じてメッセージ、派遣します。
コンテナー、 WM_SETCURSORかWM_MOUSEMOVEメッセージ、マウス ポインターをIPointerInactiveをサポートする、アクティブでないオブジェクトを受信するたびに、それはGetActivationPolicyを呼び出す必要があります フェースと、 POINTERINACTIVE列挙体からの戻り値のフラグ。
対応するエントリをメッセージ マップに追加して、通常のウィンドウ メッセージと同じようにこれらのメッセージを処理できます。ハンドラーでは、 m_hWndメンバー変数だ (またはそれを使用して任意のメンバー関数) を使用して回避せずその値がないことを確認する-NULL。
任意のオブジェクトを行うよりも、マウス カーソルを設定など、マウス移動イベントを起動するためのもの特別な視覚的なフィードバックを与える必要があります、 POINTERINACTIVE_ACTIVATEONENTRYフラグを返す、のみアクティブな際のフィードバックを描きます。このフラグのオブジェクトを返す場合は、コンテナーの場所にすぐにアクティブし、後、 GetActivationPolicyへの呼び出しをトリガーした同じメッセージを転送する必要があります。
POINTERINACTIVE_ACTIVATEONENTRYとPOINTERINACTIVE_DEACTIVATEONLEAVEの両方のフラグが返された場合は、マウスがオブジェクト上にあるときに、オブジェクトはのみアクティブなります。POINTERINACTIVE_ACTIVATEONENTRYフラグが返される場合は、とき、マウスを最初オブジェクトを入力すると、オブジェクトは有効になります。
また、アクティブでないコントロールを対象の OLE ドラッグ アンド ドロップ操作を必要があります。これは、コントロールのウィンドウをドロップ ターゲットとして登録することができますので、現時点では、ユーザー オブジェクトにドラッグ コントロールをアクティブ化する必要があります。ドラッグ中にアクティベーションが発生するには、 POINTERINACTIVE_ACTIVATEONDRAGフラグを返す:
DWORD CMyCtrl::GetActivationPolicy(){特価;POINTERINACTIVE_ACTIVATEONDRAG を返す;}(&N)
GetActivationPolicyで通信される情報は、コンテナーではキャッシュしないように。マウスがアクティブでないオブジェクトに入るたびにではなく、このメソッドが呼び出される必要があります。
場所でマウスがそれに入ったときにアクティブにする、アクティブでないオブジェクトを要求しない場合は、そのコンテナー以降WM_SETCURSORメッセージをこのオブジェクトがオブジェクト上のマウス ポインターのまま限りOnInactiveSetCursorを呼び出すことによってディスパッチする必要があります。
IPointerInactiveインターフェイスを通常有効にすると、すべての回でマウス メッセージを処理できるように制御することを意味します。IPointerInactiveインターフェイスをサポートしていないコンテナー内のこの行動を取得するには、常に表示すると、アクティブ化を制御する必要があります、コントロールはその他のフラグの間でOLEMISC_ACTIVATEWHENVISIBLEフラグがあります。ただし、このフラグを防ぐ効果IPointerInactiveをサポートして、コンテナーにするには、あなたも、 OLEMISC_IGNOREACTIVATEWHENVISIBLEフラグを指定することができます。:
静的 const DWORD BASED_CODE _dwMyOleMisc =特価;OLEMISC_ACTIVATEWHENVISIBLE |OLEMISC_IGNOREACTIVATEWHENVISIBLE |OLEMISC_SETCLIENTSITEFIRST |OLEMISC_INSIDEOUT |OLEMISC_CANTLINKINSIDE |OLEMISC_RECOMPOSEONRESIZE(&N);
COleControl 概要|nbsp;クラス メンバー |階層図(&N)
参照特価;COleControl::OnInactiveSetCursor、 COleControl::OnInactiveMouseMove(&N)