关于超想
本站导航
邮件列表
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
你所在的位置 -> 主页 -> 超想软件 -> 编程资料 -> delphi -> 开发技巧 -> API相关 ->详细
相关内容  
 
 
在Delphi程序中应用IE浏览器控件
 
【新品推荐】

  详细内容
 

利用浏览窗口 DragDrop 任意文件
作者: 吴中卫·yesky 评价: 上站日期: 2001-05-10
内容说明:
来源:

  本节主要学习利用三个与 DragDrop 有关的函数来完成从浏览窗口取得拖放过来的文件及详细路径。这三个函数是: DragAcceptFiles、DragQueryFile、DragFinish。

它们的函数原形如下:

VOID DragAcceptFiles(
HWND hWnd, // 接受拖拽文件窗口的句柄
BOOL fAccept // 接受条件 true = 打开,false = 关闭 
);

UINT DragQueryFile(
HDROP hDrop, // 指向 DragDrop 结构的指针
UINT iFile, // 拖拽文件的索引
LPTSTR lpszFile, // 文件名字串缓冲
UINT cch // 文件名长度
);

VOID DragFinish(
HDROP hDrop // 释放 DragDrop 的内存块
); 
  从浏览窗口获取一个 DragDrop 文件的流程为:首先用 DragAcceptFiles 函数激活接受窗口的 DragFropAcceptance 属性,然后重载 Windows 的 WM_DROPFILES 消息,在 WM_DROPFILES 消息处理机制里利用 DragAcceptFiles函数分析拖拽文件的详细情况。最后释放掉 DragDrop 结构的内存块,在 WM_DROPFILES 消息的 WParam 参数就指向这个 DragDrop 的内存地址。当 DragDrop 的文件数不止一个时,只消简单的循环 DragQueryFile 就行。

 

范例:

unit Unit1; 

interface 

uses 
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 
StdCtrls; 

type 
TForm1 = class(TForm) 
ListBox1: TListBox; 
procedure FormCreate(Sender: TObject); 
protected 
procedure WMDROPFILES (var Msg: TMessage); message WM_DROPFILES; //重载 Windows 的 WM_DROPFILES 消息 
private 
{ Private-Deklarationen } 
public 
{ Public-Deklarationen } 
end; 

var 
Form1: TForm1; 

implementation 
uses shellapi; 

{$R *.DFM} 

procedure TForm1.WMDROPFILES (var Msg: TMessage); 
var i,nfiles, 
size : integer; 
Dateiname : PChar; 

begin 
inherited; 
nfiles := DragQueryFile(Msg.WParam, $FFFFFFFF, Dateiname, 255); // nfiles 保存 DragDrop 的文件数
for i := 0 to (nfiles - 1) do begin 
size := DragQueryFile(Msg.WParam, i , nil, 0) + 1; // 先知道文件名长度
Dateiname:= StrAlloc(size); 
DragQueryFile(Msg.WParam,i , Dateiname, size); 
listbox1.items.add(StrPas(Dateiname)); 
StrDispose(Dateiname); 
end; 
DragFinish(Msg.WParam); 
end; 

procedure TForm1.FormCreate(Sender: TObject); 
begin 
DragAcceptFiles( Handle, true ); 
end; 

end. 

 
你所在的位置 -> 主页 -> 超想软件 -> 编程资料 -> delphi -> 开发技巧 -> API相关 ->详细
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
声明:本站内容除注明原创以外均从网上摘抄,如有侵权请指明。
  如果您对我们的网站有什么意见或者建议,请与我们联系
powered by 建站易上手- V2.0