lvwAnnex为一个ListView用来接受拖进来的文件,将lvwAnnex的OLEDragMode设为0-ccOLEDragManual ,OLEDropMode属性设为1-ccOLEDropManualPrivate Sub lvwAnnex_OLEDragDrop(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
If Data.GetFormat(vbCFFiles) = True Then
Effect = OLEDragDropFiles(Data)
End IfEnd SubPrivate Sub lvwAnnex_OLEDragOver(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single, State As Integer)
If Data.GetFormat(vbCFFiles) = True Then
Effect = vbDropEffectCopy
End IfEnd SubPrivate Function OLEDragDropFiles(Data As RichTextLib.DataObject) As Long Dim FileName As Variant Dim OpenFileName As String Dim Filenum As Long Dim ContentType As Integer Dim FileEtc As String Dim FileCount As Integer If Data.GetFormat(vbCFFiles) = True Then For Each FileName In Data.Files
If Data.GetFormat(vbCFFiles) = True Then
Effect = OLEDragDropFiles(Data)
End IfEnd SubPrivate Sub lvwAnnex_OLEDragOver(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single, State As Integer)
If Data.GetFormat(vbCFFiles) = True Then
Effect = vbDropEffectCopy
End IfEnd SubPrivate Function OLEDragDropFiles(Data As RichTextLib.DataObject) As Long
Dim FileName As Variant
Dim OpenFileName As String
Dim Filenum As Long
Dim ContentType As Integer
Dim FileEtc As String
Dim FileCount As Integer If Data.GetFormat(vbCFFiles) = True Then For Each FileName In Data.Files
FileCount = FileCount + 1
Next
If FileCount = 1 Then
For Each FileName In Data.Files
OpenFileName = CStr(FileName)
FileEtc = GetFileEtc(CStr(FileName))
Next
Select Case UCase(FileEtc)
Case ".TXT"
ContentType = 1
Case ".RTF"
ContentType = 0
Case Else
ContentType = 2
End Select
If ContentType <> 2 Then
Filenum = FreeFile
Open OpenFileName For Input Access Read As Filenum
If LOF(Filenum) <= 1000 And rchtxtContent.Text = "" Then
rchtxtContent.LoadFile OpenFileName, ContentType
Close Filenum
OLEDragDropFiles = vbDropEffectCopy
Exit Function
End If
End If
End If
For Each FileName In Data.Files
' If Dir(FileName, vbDirectory) <> "" Then
' Else
AddAnnexTolvwAnnex (FileName)
' End If
Next
OLEDragDropFiles = vbDropEffectCopy
frmNewMail.cmdAddAnnex.Value = True
End If
End Function