ドラッグ アンド ドロップ : カスタマイズ

ドラッグ アンド ドロップ機能の既定の実装は、ほとんどのアプリケーションでそのまま十分に使用できます。 ただし、アプリケーションによっては、ドラッグ アンド ドロップの標準動作を変更する必要があります。 ここでは、既定の動作の変更方法について説明します。 この方法では、複合ドキュメントをサポートしていないアプリケーションでもドロップ ソースにできます。

標準的な OLE のドラッグ アンド ドロップ動作をカスタマイズする場合、または非 OLE アプリケーションをドロップソースにするには、COleDataSource オブジェクトを作成し、データを保持します。 ユーザーがドラッグ アンド ドロップ操作を開始すると、ドラッグ アンド ドロップ操作をサポートするほかのクラスではなく、このオブジェクトの関数 DoDragDrop が呼び出されます。

また、ドロップ操作を制御する COleDropSource オブジェクトを作成すると、そのメンバー関数をオーバーライドして、さまざまな動作をカスタマイズできます。 作成した COleDropSource オブジェクトを関数 COleDataSource::DoDragDrop に渡すと、関数の既定の動作がカスタマイズされます。 このように、アプリケーションがサポートするドラッグ アンド ドロップ機能を柔軟に変更できます。 データ ソースの詳細については、「データ オブジェクトとデータ ソース (OLE)」を参照してください。

次の関数をオーバーライドして、ドラッグ アンド ドロップ操作をカスタマイズできます。

オーバーライドする関数

カスタマイズ内容

OnBeginDrag

DoDragDrop の呼び出し後に、ドラッグを開始する方法。

GiveFeedback

ドロップの結果に応じた、カーソルの形などの画面上の表示。

QueryContinueDrag

ドラッグ アンド ドロップの終了方法。 この関数を使うと、ドラッグ中に修飾子キーの状態をチェックできます。

参照

参照

COleDropSource クラス

COleDataSource クラス

概念

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