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