次の方法で共有


CView::OnDropEx

更新 : 2007 年 11 月

有効なドロップ ターゲット上でユーザーがデータ オブジェクトを離したとき、フレームワークが呼び出します。

virtual DROPEFFECT OnDropEx(
   COleDataObject* pDataObject,
   DROPEFFECT dropDefault,
   DROPEFFECT dropList,
   CPoint point 
);

パラメータ

  • pDataObject
    ドロップ ターゲットにドロップされる COleDataObject へのポインタ。

  • dropDefault
    現在のキーの状態に基づいて、ユーザーが選択した既定のドロップ操作の結果。DROPEFFECT_NONE も設定可能です。ドロップの結果の詳細については、「解説」を参照してください。

  • dropList
    ドロップ ソースがサポートするドロップ操作の結果の一覧。ドロップの結果の値は、ビットごとの OR (|) 演算子で組み合わせることができます。ドロップの結果の詳細については、「解説」を参照してください。

  • point
    ビューのクライアント領域からの現在のマウスの相対位置。

戻り値

point で指定される位置でのドロップ操作の結果。dropEffectList で指定された値のいずれかになります。ドロップの結果の詳細については、「解説」を参照してください。

解説

既定の実装では何も行わず、フレームワークが OnDrop ハンドラを呼び出すことを示すために、ダミーの値 ( -1 ) を返します。

マウスの右ボタンを使用したドラッグ アンド ドロップの結果を実装するには、この関数をオーバーライドします。一般に、マウスの右ボタンを使用したドラッグ アンド ドロップを実行すると、右ボタンを離したときに選択メニューが表示されます。

OnDropEx をオーバーライドすると、マウスの右ボタンを問い合わせます。GetKeyState を呼び出したり、OnDragEnter ハンドラで右ボタンの状態を格納したりできます。

  • マウスの右ボタンが押される場合、オーバーライドをすると、ドロップ ソースがサポートするドロップ操作の結果のポップアップ メニューが表示されます。

    • ドロップ ソースがサポートするドロップ操作の結果を確認するには、dropList を調べます。ポップアップ メニューに限り、これらの動作を有効にします。

    • dropDefault. に基づいて既定の動作を設定するには、SetMenuDefaultItem を使用します。

    • 最後に、ポップアップ メニューでユーザーが選択した動作を実行します。

  • マウスの右ボタンが押されていない場合、オーバーライドすると標準のドロップ要求として処理します。dropDefault. で指定されたドロップ操作の結果を使用します。代わりに、オーバーライドするとダミーの値 ( -1 ) を返すことができ、OnDrop がこのドロップ操作を処理することを示します。

クリップボード データ形式や指定された位置にドロップされたデータに対して、pDataObject を使って COleDataObject を調べることができます。

ドロップの結果は、ドロップ操作に関連付けられた動作を説明します。以下に示すドロップの結果の一覧を参照してください。

  • DROPEFFECT_NONE   ドロップできません。

  • DROPEFFECT_COPY   コピー操作が実行されます。

  • DROPEFFECT_MOVE   移動操作が実行されます。

  • DROPEFFECT_LINK   ドロップされたデータと元のデータがリンクされます。

  • DROPEFFECT_SCROLL   ドラッグ スクロール操作がターゲット内で発生するところか、発生しています。

既定のメニュー コマンド設定の詳細については、「CMenu::GetSafeHmenu」、および Windows SDK の「SetMenuDefaultItem」を参照してください。

必要条件

ヘッダー : afxwin.h

参照

参照

CView クラス

階層図

CView::OnDragEnter

CView::OnDragOver

CView::OnDrop

CView::OnDragLeave

COleDropTarget::OnDropEx

その他の技術情報

CView のメンバ