文件拖放 API

API 描述
DragAcceptFiles 设置窗口能否接受文件拖放
DragQueryFile 查询拖放的文件
DragFinish 释放拖放句柄
WM_DropFiles = &H0233 文件拖放消息

1、DragAcceptFiles

设置窗口能否接受文件拖放。

Public Declare Sub DragAcceptFiles Lib "shell32.dll" Alias "DragAcceptFiles" (ByVal hwnd As Long, ByVal fAccept As Long)
参数 描述
hwnd 窗口句柄
fAccept 是否允许窗口作为文件拖放的目标

2、DragQueryFile

返回拖放文件的列表。

Public Declare Function DragQueryFile Lib "shell32.dll" Alias "DragQueryFileA" (ByVal HDROP As Long, ByVal UINT As Long, ByVal lpStr As String, ByVal ch As Long) As Long
参数 描述
HDROP 拖放句柄,从消息结构中取第二个值
UINT 需要获取的拖放文件名的序号,如果是 -1,函数将返回被拖放的文件数
lpStr 返回文件名的存储地址
ch 文件名存储地址的空间大小

3、DragFinish

释放文件拖放句柄。

Public Declare Sub DragFinish Lib "shell32.dll" Alias "DragFinish" (ByVal hDrop As Long)
参数 描述
hDrop 拖放句柄

4、WM_DropFiles

文件拖放事件的消息,需要调用的过程定义如下:

procedure TForm1.MyDrag (var Msg: TWMDropFiles)
参数 描述
Msg 消息结构

Public Type MSG
  hwnd As Long
  message As Long
  wParam As Long   '拖放句柄
  lParam As Long
  time As Long
  pt As POINTAPI
End Type