0
在本指南https://msdn.microsoft.com/en-us/library/office/ff767482.aspx中,我能夠在拖放形狀時獲得事件觸發器。但問題是,當我收到此事件觸發器時,形狀位置未更新到放置位置。我的問題是,如何在刪除它之後,如何獲取形狀的更新位置,以在Visio中對其他形狀執行一些重疊檢查?Visio dragDrop形狀位置未更新
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
端功能
嗨,感謝您的回覆。 evtMouse.x和evtMouse.y似乎總是稍微偏離我選定shape的放置位置幾英寸。我嘗試使用ActiveWindow.Selection(1)獲取選定的形狀,當我通過執行來提取座標時: Selectedshp.Cells(「PinX」)。ResultIU 它似乎給了我一個稍微偏離形狀的原始放置位置的值。我放棄它後似乎無法得到形狀的確切座標。 – NiTuRen
您可能會發現該捕捉會改變實際鼠標位置下降形狀的最終位置,並且該縮放級別越遠,該效果將會放大或更明顯。 – JohnGoldsmith