Varför får jag ej HitTest att fungera under proceduren OLEDragDrop i en treeview. Jag tror att jag har hittat felet.får ej HitTest att fungera under proceduren OLEDragDrop
Den fungerar ju under MouseMove proceduren.
Private Sub tv3_OLEDragDrop(Data As ComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
Dim DropNode As Node
Set DropNode = tv3.HitTest(x, y)
If DropNode Is Nothing Then 'Ingen nod träffades
Debug.Print "Ingen Nod Träffades"
Else
Debug.Print DropNode & " Träffades"
End If
Set DropNode = Nothing
End Sub
resultatet blir att jag har träffat en nod trots att jag släpper filen utanför noden. Jag har för mig att jag har fått det att fungera tidigare.
HVH
indurainSv: får ej HitTest att fungera under proceduren OLEDragDrop
Av någon anledning så ser der det ut att vara ett enhetsfel. Efter att ha mixtrat med x & y siffrorna så tror datorn att enheten för min treeview är 1-vbtwips.
Men ScaleMode för mitt formulär är 3-vbPixels. Så jag har löst det på följande sätt
Dim DropNode As Node
Set DropNode = tv3.HitTest(X * 15, Y * 15)
If DropNode Is Nothing Then 'Ingen nod träffades
Debug.Print "Ingen Nod Träffades"
Else
Debug.Print DropNode & " Träffades"
End If
Set DropNode = Nothing
Efter lite tester så har jag sett att så fort man tar någon annan enhet än 1-vbTwips i ScaleMode så fungerar det inte. Varför är det så?
Observera detta gäller tydligen bara med OLEDragDrop procedurer + resterande OLE-procedurer.