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