エクスプローラからのドラッグでリスト項目を選択

解決


ピッコロ  2005-03-07 09:26:45  No: 13579

DragAcceptFilesを使ってListViewでエクスプローラからの
ドラッグ&ドロップを受け付けるようにしています。
このドラッグ中に、マウスカーソルの下にあるリスト項目を
DropTargetに設定することはできるのでしょうか?

リスト内に入ってもMouseMoveイベント等が起こらないので
判別するタイミングが分からないのです。


つっか  2005-03-07 09:55:24  No: 13580

>DropTargetに設定することはできるのでしょうか?

これの意味をもう少し詳しく説明してください。


ピッコロ  2005-03-07 16:56:49  No: 13581

>これの意味をもう少し詳しく説明してください。

「ドロップ先として選択された状態で表示されるかどうか」という意味です。


へいた  2005-03-08 00:17:57  No: 13582

DragAcceptFilesAPIを使って、エクスプローラからドラッグ&ドロップを行うには、以下のようにします。

Private
 Procedure DropFiles(var Msg:TWMDROPFILES);Message WM_DROPFILES;

どこかのタイミングで、DragAcceptFiles(Form1.Handle, True);

として、
Procedure TForm1.DropFiles(var Msg:TWMDROPFILES);
でDragQueryfileAPIを使って、ドロップの処理を記述します。

APIを使っての処理ですから、MouseMoveイベントではなく、上記のようにします。


Basser  2005-03-08 00:43:04  No: 13583

>リスト内に入ってもMouseMoveイベント等が起こらないので
>判別するタイミングが分からないのです。

DragQueryPoint でドロップされたマウス座標が取得できます。


つっか  2005-03-08 00:51:37  No: 13584

> DragQueryPoint でドロップされたマウス座標が取得できます。

そうですけど、質問は

> このドラッグ中に、マウスカーソルの下にあるリスト項目を

です。エクスプローラにマウスキャプチャーされているらしくて、簡単じゃなさそう


Basser  2005-03-08 02:43:12  No: 13585

すみません。質問の内容をよく理解していませんでした。

IDropTargetインターフェイスを実装すれば実現できそうです。
詳しくはネットで調べてみて下さい。


ピッコロ  2005-03-08 08:20:42  No: 13586

Drag and Drop Component SuiteのDropFileTargetを使うことで
希望の機能が実装できそうです。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加