Hallo Frank,
ich habe das so ins Modul eingebaut:
zu1:
...
...
Public kkNodos1 As Long
Public XX01#, YY01#, ZZ01#
'API-Funktion deklarieren
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Type POINTAPI 'Variablentyp deklarieren
X As Long
Y As Long
End Type
Public Sub Kopieren_am_Pfad()
Set App = IMSIGX.Application
Set ActDr = App.ActiveDrawing
Set objsel = ActDr.Selection
If ActDr.Properties("TileMode") = 0 Then
pSpace01 = True
...
...
zu 2)
Function zPick02()
Dim xClick#, yClick#
Dim PicRes As PickResult
Dim PicEnt As PickEntry
Set App = IMSIGX.Application
Set ActDr = App.ActiveDrawing
Set Grs = ActDr.Graphics
Set Vi = ActDr.ActiveView
Dim CursorPos As POINTAPI
O_2D = 0
Err.Clear
On Error GoTo zPick02_99
'Vi.GetMouseClick xClick, yClick
Call GetCursorPos(CursorPos)
'MsgBox ActDr.ActiveView.ViewHeight & " " & ActDr.ActiveView.ViewWidth
'MsgBox ("Cursor X = " & CursorPos.X & " Cursor Y = " & CursorPos.Y)
pw = (ActDr.ActiveView.ViewHeight + ActDr.ActiveView.ViewWidth) / 1
'Set PicRes = Vi.PickPoint(xClick, yClick, pw, False, True, True, True, True, False)
Set PicRes = Vi.PickPoint(CursorPos.X / 1, CursorPos.Y / 1, pw, False, True, True, True, True, False)
If PicRes.Count > 0 Then
Set GrSel = PicRes.Item(0).Graphic
...
...
Mit Call GetCursorPos(CursorPos)
werden die Koordinaten des Mauszeigers beim Drücken der linken Maustaste übernommen.
Wohl habe ich aber festgestellt, das die Bildschirmauflösung eine Rolle spielt.
also so ganz glücklich bin ich mit der Lösung noch nicht. Aber sie funktioniert bei mir.
viele Grüße
Werner
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP