Hi,
die Vorgehensweise ist prinzipiell folgende:
Du benötigst ein Solid Edge Command und Mouse Objekt. Deren Deklaration sieht z.B. wie folgt aus:
Private WithEvents mobjSeCommand As SolidEdgeFramework.Command
Private WithEvents mobjSeMouse As SolidEdgeFramework.Mouse
Im Code, wo Du das Assembly hinzufügst beschaffst Du Dir das Command-Objekt und über das Command-Objekt das Mouse-Objekt, setzt gewünschte Eigenschaften des Mouse-Objekts, und startest schließlich das Command-Objekt:
Set mobjSeCommand = gobjSeApp.CreateCommand(seNoDeactivate)
If Not mobjSeCommand Is Nothing Then
With mobjSeCommand
.OnEditOwnerChange = 1
.OnEnvironmentChange = 1
Set mobjSeMouse = .Mouse
With mobjSeMouse
.EnabledMove = True
End With
.Start
End With
Else
Exit Sub
End If
Nun gilt es die entsprechenden Ereignis-Handler für das Mouse-Click, Mouse-Move Ereignis usw. mit Leben zu füllen. In Deinem Fall, wo Du ein Hängen an der Maus simulieren möchtest, musst Du im Mouse-Move Ereignis Dein eingefügtes Assemblydokument auf die aktuelle Mausposition verschieben (erfordert u.U. eine Umrechnen von Fenster- in Modellkoordinaten). Im Mouse-Click Ereignishandler prüfst Du auf linken Mausklick und beendest das Command-Objekt:
Set mobjSeMouse = Nothing
mobjSeCommand.Done = True
Set mobjSeCommand = Nothing
Auch das Command-Objekt löst Ereignisse aus, auf die Du in entsprechenden Ereignis-Handlern reagieren kannst (u.U. auch musst, je nach Programmanforderung).
Diese dürfte Dir erst einmal weiterhelfen.
------------------
Viele Grüße,
Wolfgang Kunert
www.wksyspro.de
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP