1、引用外部dll函数:
FUNCTION int DragQueryFile(long hDrop, int iFile, REF string szFileName,int cb) LIBRARY "shell32.dll" alias for "DragQueryFileA"
SUBROUTINE DragAcceptFiles(long l_hWnd,boolean fAccept) LIBRARY "shell32.dll"
SUBROUTINE DragFinish(long hDrop) LIBRARY "shell32.dll"
2、open事件写下代码:
DragAcceptFiles(handle(lb_file), true)
3、自定义pbm_dropfiles事件中写下代码:
string ls_path = Space(128)
Int i
int li_files
Ulong hDrop
//lb_file控件名称 文件拖动到当前控件名称上
lb_file.reset()
hDrop = Message.WordParm
li_files = DragQueryFile(hDrop, - 1, ls_path, 127) - 1
FOR i = 0 TO li_files
DragQueryFile(hDrop, i, ls_path, 127)
IF lb_path.FindItem(ls_path,0) <> - 1 then
MessageBox("提示", ls_path + '~r~n~r~n 文件已经存在!')
ELSE //lb_path 控件名称,文件路径显示控件
lb_path.AddItem(ls_path)
END IF
NEXT
DragFinish(hDrop)
效果图: