ドラッグ アンド ドロップ : ドロップ ターゲットの実装

更新 : 2007 年 11 月

ここでは、アプリケーションをドロップ ターゲットにする方法について説明します。ドロップ ターゲットの実装は、ドロップ ソースの実装より多少手間がかかりますが、それでも比較的簡単です。以下の方法は非 OLE アプリケーションにも適用できます。

ドロップ ターゲットを実装するには

  1. ドロップ ターゲットにするアプリケーションの各ビューに、メンバ変数を追加します。このメンバ変数は、COleDropTarget 型または COleDropTarget の派生クラスである必要があります。

  2. ビューの WM_CREATE メッセージを処理する関数 (通常、OnCreate) で、新しいメンバ変数のメンバ関数 Register を呼び出します。ビューが破棄されると、関数 Revoke が自動的に呼び出されます。

  3. 以下の関数をオーバーライドします。アプリケーションのすべてのビューで同じ動作を実現するには、ビュー クラスの関数をオーバーライドします。特別な場合にだけ動作を変えるか、非 CView ウィンドウにドロップできるようにする場合には、COleDropTarget の派生クラスのメンバ関数をオーバーライドします。

    オーバーライドする関数

    機能

    OnDragEnter

    ウィンドウ内でのドロップを実現します。カーソルが最初にウィンドウに入ったときに呼び出されます。

    OnDragLeave

    ドラッグ操作によって指定されたウィンドウから離れたときに、特別な処理を行うことができます。

    OnDragOver

    ウィンドウ内でのドロップを実現します。カーソルがウィンドウ上をドラッグされているときに呼び出されます。

    OnDrop

    指定されたウィンドウにドロップされたデータを処理します。

    OnScrollBy

    コピー先のウィンドウで、スクロールが必要となった場合に、特別な処理を行うことができます。

これらの関数の連携動作の例については、MFC OLE のサンプル プログラム OCLIENT の MAINVIEW.CPP ファイルを参照してください。

詳細については、次のトピックを参照してください。

参照

概念

ドラッグ アンド ドロップ (OLE)

参照

COleDropTarget クラス