ドラッグ アンド ドロップ : ドロップ ターゲットの実装
ここでは、アプリケーションをドロップ ターゲットにする方法について説明します。 ドロップ ターゲットの実装は、ドロップ ソースの実装より多少手間がかかりますが、それでも比較的簡単です。 以下の方法は非 OLE アプリケーションにも適用できます。
ドロップ ターゲットを実装するには
ドロップ ターゲットにするアプリケーションの各ビューに、メンバー変数を追加します。 このメンバー変数は、COleDropTarget 型または COleDropTarget の派生クラスである必要があります。
ビューの WM_CREATE メッセージを処理する関数 (通常、OnCreate) で、新しいメンバー変数のメンバー関数 Register を呼び出します。 ビューが破棄されると、関数 Revoke が自動的に呼び出されます。
以下の関数をオーバーライドします。 アプリケーションのすべてのビューで同じ動作を実現するには、ビュー クラスの関数をオーバーライドします。 特別な場合にだけ動作を変えるか、非 CView ウィンドウにドロップできるようにする場合には、COleDropTarget の派生クラスのメンバー関数をオーバーライドします。
オーバーライドする関数
機能
OnDragEnter
ウィンドウ内でのドロップを実現します。 カーソルが最初にウィンドウに入ったときに呼び出されます。
OnDragLeave
ドラッグ操作によって指定されたウィンドウから離れたときに、特別な処理を行うことができます。
OnDragOver
ウィンドウ内でのドロップを実現します。 カーソルがウィンドウ上をドラッグされているときに呼び出されます。
OnDrop
指定されたウィンドウにドロップされたデータを処理します。
OnScrollBy
コピー先のウィンドウで、スクロールが必要となった場合に、特別な処理を行うことができます。
これらの関数の連携動作の例については、MFC OLE のサンプル プログラム OCLIENT の MAINVIEW.CPP ファイルを参照してください。
詳細については、次のトピックを参照してください。