如何在不同程序之间事先拖放(如我的程序和资源管理器)(100分)

  • 主题发起人 主题发起人 cjsy
  • 开始时间 开始时间
C

cjsy

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在不同程序之间事先拖放(如我的程序和资源管理器)
 
用drag&drop控件嘛
http://www.melander.dk
foxmail都用它,你不用
 
去看msdn里关于IDropTarget的资料有C++的sample
 
简直是废话,不是有地址了吗,你不会自己下载一个来看看吗?简直是不可救药。
 
Use WM_DROPFILES is very easy!
 
用控件来实现相当的容易
www.vclxx.org

如果自己编程实现 需要实现 IDropSource ,IDropTarget,IDataObject等接口
请看Windows SDK Help
 
利用Windows的消息 看一下我的代码
procedure Tdragfrm.wmdropfiles(var message: TMessage);
var
p :pchar ;
i : word ;
Num : Word ;
tmplist : TStringList ;
begin
inherited;
p := SysGetMem(255);
Num := DragQueryFile(Message.WParam,$ffffffff,nil,0);
if Num = 1 Then
begin
DragQueryFile(Message.WParam,0,p,255);
try
OneFileFrm := TOneFileFrm.Create(self);
OneFileFrm.edtFile.Text := String(p);
OneFileFrm.ShowModal ;
Finally
OneFileFrm.Free ;
sysFreeMem(p);
end;
end
else begin
tmplist := TStringList.Create ;
for i := 0 to Num - 1 do
begin
DragQueryFile(Message.WParam,i,p,255);
tmplist.Add(String(p));
end;
try
FilesFrm := TFilesFrm.Create(self);
FilesFrm.FileAddToList(tmplist);
FilesFrm.ShowModal ;
Finally
FilesFrm.Free ;
sysFreeMem(p);
end;
end;

end;
 
多人接受答案了。
 
后退
顶部