Option Explicit
Dim selEffect As Integer
Private Sub Form_Load()
RichTextBox1.OLEDragMode = rtfOLEDragManual
RichTextBox1.OLEDropMode = rtfOLEDropManual
RichTextBox2.OLEDragMode = rtfOLEDragManual
RichTextBox2.OLEDropMode = rtfOLEDropManual
End Sub
Private Sub RichTextBox1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If RichTextBox1.SelLength > 0 And Button > 0 Then
RichTextBox1.OLEDrag
End If
End Sub
Private Sub RichTextBox1_OLECompleteDrag(Effect As Long)
If Effect = vbDropEffectMove Then
RichTextBox1.SelText = ""
End If
End Sub
Private Sub RichTextBox1_OLEDragOver(Data As RichTextLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single, State As Integer)
If Button > 2 Then
Effect = vbDropEffectNone
End If
If Button = 1 Then
Effect = Effect And vbDropEffectMove
End If
If Button = 2 Then
Effect = Effect And vbDropEffectCopy
End If
selEffect = Effect
End Sub
Private Sub RichTextBox1_OLESetData(Data As RichTextLib.DataObject, DataFormat As Integer)
Data.SetData RichTextBox1.SelText, DataFormat
End Sub
Private Sub RichTextBox1_OLEStartDrag(Data As RichTextLib.DataObject, AllowedEffects As Long)
AllowedEffects = vbDropEffectCopy Or vbDropEffectMove
Data.Clear
Data.SetData , vbCFText
Data.SetData , vbCFRTF
End Sub
Private Sub RichTextBox2_LostFocus()
RichTextBox2.SelLength = 0
End Sub
Private Sub RichTextBox2_OLEDragDrop(Data As RichTextLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
If Data.GetFormat(vbCFText) Then
RichTextBox2.SelText = Data.GetData(vbCFText)
Effect = selEffect
Else
Effect = vbDropEffectNone
End If
End Sub
Private Sub RichTextBox2_OLEDragOver(Data As RichTextLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single, State As Integer)
If Button > 2 Then
Effect = vbDropEffectMove
End If
If Button = 2 Then
Effect = Effect And vbDropEffectCopy
End If
selEffect = Effect
End Sub
我之所以要问以上那个问题,就是想知道为什么要用
Effect = Effect And vbDropEffectCopy而不用
Effect = vbDropEffectCopy我用监视窗口看Effect的值时发现它等于3