CView::OnDropEx
有効なドロップ ターゲット上でユーザーがデータ オブジェクトを離したとき、フレームワークが呼び出します。
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