Dans ce guide https://msdn.microsoft.com/en-us/library/office/ff767482.aspx, je peux déclencher un événement lorsque je fais glisser et déposez mes formes. Mais le problème est que la position de la forme n'est pas mise à jour à la position de chute lorsque j'ai reçu ce déclencheur d'événement. Ma question est comment puis-je obtenir une position mise à jour de la forme après que je l'ai laissé tomber pour effectuer un contrôle de chevauchement sur la forme avec d'autres formes dans Visio?Visio dragDrop position de la position non mise à jour
Dim strMessage As String
'Find out which event and event extension fired
Select Case nEventCode
Case visEvtCodeMouseMove
Dim strInfo As String
If (pSubjectObj.DragState = visMouseMoveDragStatesDrop) Then
strMessage = "MouseMove - dragDrop"
'Shape position is not updated to drop position here
End If
Case Else
strMessage = "Other (" & nEventCode & ")"
End Select
'Display the event name and the event code
If (Len(strMessage)) Then
Debug.Print strMessage
End If
End Function
Salut merci pour la réponse. Le evtMouse.x et evtMouse .y semble toujours être un peu à quelques centimètres de la position de goutte de ma forme sélectionnée.J'ai essayé d'obtenir la forme sélectionnée en utilisant ActiveWindow.Selection (1), quand j'extraire les coordonnées en faisant: Selectedshp.Cells ("PinX"). ResultIU il semble me donner une valeur qui est un peu décalée par rapport à la position initiale de la forme. Je n'arrive pas à obtenir la coordonnée exacte de la forme après l'avoir lâchée. – NiTuRen
Vous remarquerez peut-être que l'alignement modifie la position finale de la forme abandonnée par rapport à la position réelle de la souris et que cet effet sera amplifié ou plus évidente à mesure que le niveau de zoom s'éloignera. – JohnGoldsmith