ドラッグ アンド ドロップ
ドラッグ アンド ドロップとは、マウスまたはその他のポインティング デバイスを使用してデータ ソースとその宛先の両方を指定するデータ転送を指します。 一般的なドラッグ アンド ドロップ操作では、ユーザーは、マウス ポインターを移動し、左ボタンまたはこの目的のために指定された他のボタンを押したままにして、転送するオブジェクトを選択します。 ユーザーは、ボタンを押したまま、オブジェクトをコピー先 (任意の OLE コンテナー) にドラッグして転送を開始します。 ドラッグ アンド ドロップでは、OLE クリップボードのコピーと貼り付けとまったく同じ機能が提供されますが、視覚的なフィードバックが追加され、メニューが不要になります。 実際、アプリケーションがクリップボードのコピーと貼り付けをサポートしている場合は、ドラッグ アンド ドロップをサポートするために、追加の操作はほとんど必要とされません。
OLE のドラッグ アンド ドロップ操作では、次の 3 つの個別のコードが使用されます。
ドラッグ アンド ドロップ コード ソース | 使用と実装 |
---|---|
IDropSource インターフェイス |
ドラッグ元と呼ばれる、ドラッグされたデータを含むオブジェクトによって実装されます。 |
IDropTarget インターフェイス |
ドロップ ターゲットと呼ばれるドロップを受け入れることを目的としたオブジェクトによって実装されます。 |
DoDragDrop 関数 |
OLE によって実装され、ドラッグ アンド ドロップ操作を開始するために使用されます。 操作の進行後、ドラッグ元とドロップ先の間の通信が容易になります。 |
The IDropSource および IDropTarget インターフェイスは、コンテナーまたはオブジェクト アプリケーションに実装できます。 ドラッグ ソースまたはドロップ ターゲットの役割は、1 種類の OLE アプリケーションに限定されません。
OLE 関数 DoDragDrop は、ドラッグがキャンセルされるか、ドロップが発生するまで、マウスとキーボードの動きを追跡するループを実装します。 DoDragDrop は、ドラッグ アンド ドロップ プロセスの重要な機能であり、ドラッグ ソースとドロップ ターゲット間の通信を容易にします。
ドラッグ アンド ドロップ操作中に、3 種類のフィードバックをユーザーに表示できます。
フィードバックの種類 | 説明 |
---|---|
ソース フィードバック |
ドラッグ ソースによって提供されるソース フィードバックは、データがドラッグされていることを示し、ドラッグの過程では変化しません。 通常、データは選択されたことを示すために強調表示されます。 |
ポインター フィードバック |
ドラッグ ソースによって提供されるポインタ フィードバックは、マウスを放したときに何が起こるかを示します。 ユーザーがマウスを動かしたり修飾キーを押したりすると、ポインター フィードバックが継続的に変化します。 たとえば、ドロップを受け入れることができないウィンドウにポインタを移動すると、ポインターは「許可されていない」記号に変わります。 |
ターゲット フィードバック |
ドロップ ターゲットによって提供されるターゲット フィードバックは、ドロップが発生する場所を示します。 |
詳細については、「ドラッグ ソースの役割」を参照してください。