win32 API を使用して、単純な編集コントロールとボタンを備えた非 MFC GUI を作成しました。ここで、ブラウザーの URL を GUI アプリケーションの編集コントロールの 1 つにドラッグ アンド ドロップする必要があります。これを行うにはどうすればよいですか? Win32 API はこの機能をサポートしていますか?
4 に答える
COMは次のように使用できます。
IDropSourceインターフェースドラッグされたデータを含むオブジェクトによって実装され、ドラッグソースと呼ばれます。IDropSourceインターフェイスは、アプリケーションでドラッグアンドドロップ操作を提供するために実装するインターフェイスの1つです。ドラッグアンドドロップ操作でデータソースとして使用されるアプリケーションで使用されるメソッドが含まれています。ドラッグアンドドロップ操作のデータソースアプリケーションは、次の役割を果たします。
ユーザーの選択に基づいて、ドラッグされるデータを決定します。ユーザーのマウスアクションに基づいてドラッグアンドドロップ操作を開始します。カーソルの設定やドラッグアンドドロップ操作用に選択されたデータの強調表示など、ドラッグアンドドロップ操作中に視覚的なフィードバックの一部を生成します。ユーザーのマウス操作に基づいてドラッグアンドドロップ操作をキャンセルまたは完了します。ドラッグ移動でデータを削除するなど、ドロップ操作によって発生した元のデータに対するアクションの実行。IDropSourceには、エンドユーザーへの視覚的なフィードバックを生成し、ドラッグアンドドロップ操作をキャンセルまたは完了するためのメソッドが含まれています。また、ドラッグアンドドロップ操作でDoDragDrop、RegisterDragDrop、およびRevokeDragDrop関数を呼び出す必要があります。
IDropTargetインターフェースドロップターゲットと呼ばれる、ドロップを受け入れることを目的としたオブジェクトによって実装されます。IDropTargetインターフェイスは、アプリケーションでドラッグアンドドロップ操作を提供するために実装するインターフェイスの1つです。これには、ドラッグアンドドロップ操作中にデータのターゲットになる可能性のあるアプリケーションで使用されるメソッドが含まれています。ドロップターゲットアプリケーションは、次の責任があります。
ターゲットアプリケーションへのドロップの影響を判断します。ドロップが発生したときに有効なドロップデータを組み込みます。ソースアプリケーションがカーソルの設定などの適切な視覚的フィードバックを提供できるように、ターゲットフィードバックをソースに伝達します。ドラッグスクロールの実装。ドロップターゲットとしてのアプリケーションウィンドウの登録と取り消し。IDropTargetインターフェイスには、アプリケーションウィンドウをドロップターゲットとして登録および取り消す以外のこれらすべての責任を処理するメソッドが含まれています。これらのメソッドに対して、RegisterDragDrop関数とRevokeDragDrop関数を呼び出す必要があります。
DoDragDrop関数OLEによって実装され、ドラッグアンドドロップ操作を開始するために使用されます。操作が進行中になると、ドラッグソースとドロップターゲット間の通信が容易になります。
OLEドラッグアンドドロップ操作を実行します。 WINOLEAPI DoDragDrop( IDataObject * pDataObject、//データオブジェクトへのポインタ IDropSource * pDropSource、//ソースへのポインタ DWORD dwOKEffect、//ソースによって許可された効果 DWORD *pdwEffect//ソースへのエフェクトへのポインタ );
はい、もちろん Win32 API はドラッグドロップ機能をサポートしています。MSDN RegisterDragDrop functionが表示されます。