Option Explicit '我估计微软在它的exporlor里留了oledrag的接口,只要是符合的数据类型就可以往文件夹里拷贝 '所以在listview的拖动事件中,你根本不必考虑mouseup所在的目标文件夹,只要在开始拖动时将数据类型设置为exporlor可以接受 '的数据类型就可以,经过多次试验,我发现vbcffiles文件列表类型可以被exporlor接受。 '在下面的程序中,我成功的把 c:\test.txt 文件拖到了目标文件夹下,符合你的要求。 ^_^ Private Sub Form_Load() ListView1.ListItems.Add , , "abcd " ListView1.OLEDragMode = ccOLEDragAutomatic End Sub '我在这里用到了一个临时文件,我不知道不用临时文件的方法行不行,在你的程序中,可以把你的图片保存成临时文件。 'olestartdrag是在初始化ole拖放时发生。在这个事件中向dataobject对象插入数据。 Private Sub ListView1_OLEStartDrag(Data As MSComctlLib.DataObject, AllowedEffects As Long) AllowedEffects = vbDropEffectCopy And AllowedEffects Data.Files.Add "c:\test.txt " Data.SetData , vbCFFiles End Sub
你仔细看看··
Option Explicit '我估计微软在它的exporlor里留了oledrag的接口,只要是符合的数据类型就可以往文件夹里拷贝
'所以在listview的拖动事件中,你根本不必考虑mouseup所在的目标文件夹,只要在开始拖动时将数据类型设置为exporlor可以接受
'的数据类型就可以,经过多次试验,我发现vbcffiles文件列表类型可以被exporlor接受。
'在下面的程序中,我成功的把 c:\test.txt 文件拖到了目标文件夹下,符合你的要求。 ^_^
Private Sub Form_Load()
ListView1.ListItems.Add , , "abcd "
ListView1.OLEDragMode = ccOLEDragAutomatic
End Sub '我在这里用到了一个临时文件,我不知道不用临时文件的方法行不行,在你的程序中,可以把你的图片保存成临时文件。
'olestartdrag是在初始化ole拖放时发生。在这个事件中向dataobject对象插入数据。
Private Sub ListView1_OLEStartDrag(Data As MSComctlLib.DataObject, AllowedEffects As Long)
AllowedEffects = vbDropEffectCopy And AllowedEffects
Data.Files.Add "c:\test.txt "
Data.SetData , vbCFFiles
End Sub