ドラッグ アンド ドロップ : ドロップ ソースの実装
ここでは、ドラッグ アンド ドロップ操作に対してデータを提供する方法について説明します。
基本的なドロップ ソースの機能は比較的簡単に実装できます。 まず、ドラッグを開始するイベントを決定します。 ユーザー インターフェイス ガイドラインでは、データが選択され、選択されたデータの内側で WM_LBUTTONDOWN イベントが発生したときをドラッグ操作の開始として定義することを推奨しています。 MFC OLE サンプル アプリケーション OCLIENT と HIERSVR は、このガイドラインに従っています。
コンテナー アプリケーションで COleClientItem 型のリンク オブジェクトまたは埋め込みオブジェクトが選択された場合は、そのメンバー関数 DoDragDrop を呼び出します。 それ以外の場合は、COleDataSource オブジェクトを構築し、選択内容でこのオブジェクトを初期化し、データ ソース オブジェクトのメンバー関数 DoDragDrop を呼び出します。 サーバー アプリケーションの場合は、関数 COleServerItem::DoDragDrop を呼び出します。 ドラッグ アンド ドロップの標準動作のカスタマイズについてを参照してください「ドラッグ アンド ドロップ:カスタマイズ。
関数 DoDragDrop が DROPEFFECT_MOVE を返した場合は、コピー元ドキュメントのソース データをすぐに削除します。 関数 DoDragDrop がこれ以外の値を返したときは、ドロップ ソースに影響はありません。
詳細については、次のトピックを参照してください。