程序得到来自外界的文件拖动列表
first use the DragAcceptFiles function to register the window that need to accpet dropped files
DragAcceptFiles(Handles,True);
then handle the message WM_DropFiles
use function DragQueryFile to get the count of the dropped files(set $FFFFFFFF as the second parameter) or to get the filename of from the filelist and put the name into a buffer..
at last,do not forget use DragFinish() to retrieve the handle.....but i don't know what the function do here~~~~
maybe the function will end the message WM_DropFiles
the Demo code:
procedure FinishDropped(var msg: TMessage); Message WM_DropFiles;
procedure TForm1.FinishDropped(var msg: TMessage);
var
Hand: THandle;
Buffer: array[0..255] of Char;
i: Integer;
Count: Integer;
Files: TstringList; //This is the file list
begin
Files := TStringList.Create;
Hand := THandle(msg.WParam);
Count := DragQueryFile(Hand, $FFFFFFFF, Buffer, 100);
for i := 0 to Count - 1 do
begin
DragQueryFile(Hand, i, Buffer, 100);
Files.add(StrPas(Buffer));
end;
DragFinish(msg.WParam);
Memo1.Lines:=Files;
end;
用这个可以做一个超好用的mp3播放器 图片查看一类 呵呵