我正在尝试在我的类中获取onMouseclick事件,我正在编写该事件以获得用户交互,并捕获屏幕上的单击以获取坐标
我在m_mouse中看到的选项是终止、挂起、恢复和帮助,这可能是一件简单的事情。

更多信息:我正尝试在Autodesk Inventor (3D建模)软件应用程序中获取mouseclick的绘图界面。
Public Class Cls_GetDrawingPickPoint
Private WithEvents m_interaction As Inventor.InteractionEvents
Private WithEvents m_mouse As InteractionEvents
Private m_position As Point2d
Private m_button As MouseButtonEnum
Private m_continue As Boolean
Public Sub New()
End Sub
Public Function GetDrawingPoint(Prompt As String, button As MouseButtonEnum) As Point2d
m_position = Nothing
m_button = button
' Start selection.
m_interaction = g_inventorApplication.CommandManager.CreateInteractionEvents
m_mouse = m_interaction.MouseEvents
m_interaction.StatusBarText = Prompt
m_interaction.Start()
Do While m_continue
g_inventorApplication.UserInterfaceManager.DoEvents()
Loop
m_interaction.Stop()
GetDrawingPoint = m_position
Return GetDrawingPoint
'Debug.Print("GetDrawingPoint: " & GetDrawingPoint.X & "," & GetDrawingPoint.Y)
End Function
Private Sub m_mouse_OnMouseClick(button As MouseButtonEnum, ShiftKeys As ShiftStateEnum, ModelPosition As Point, ViewPosition As Point2d, View As Inventor.View) Handles m_mouse.OnMouseClick
If button = m_button Then
m_position = g_inventorApplication.TransientGeometry.CreatePoint2d(ModelPosition.X, ModelPosition.Y)
Debug.Print(m_position.X & "," & m_position.Y)
End If
m_continue = False
' MsgBox("Mouse clicked: " & m_position.X & "," & m_position.Y)
End Sub
Private Sub m_interaction_OnTerminate() Handles m_interaction.OnTerminate
m_continue = False
m_interaction.Stop()
End Sub
Private Sub m_interaction_OnActivate() Handles m_interaction.OnActivate
m_continue = True
End Sub
End Class发布于 2022-10-28 16:01:54
看起来实际的对象是MouseEvents类型,它继承了InteractionEvents,而OnMouseDown是该类型的成员。为了访问该类型的成员,需要将m_mouse字段声明为该类型。
https://stackoverflow.com/questions/74235458
复制相似问题