849Re: [cc2-dev-l] How to get the selection point of an entity ?
- Aug 11, 2010
You can change the return type of the callback or cast to DWORD. Both will work.
I often do:
pENTREC XPCALL PickScan(hDLIST hDList, pENTREC pEntRec, PARM parm1, PARM parm2)
You need to cast the result of the DLScan:
You can also pass pointers to variables in parm1 and parm2 that are updated and return any non-zero value to terminate the scan.
Thanks a lot, the _asm thing did the trick.
I'll not discard the DLScan though but I need to practise a bit more with it.
I did try to design a Callback function that returns an entity, but whom does it return to as the Callback is called by the DLScan ?
Do I need to use Parm1 or Parm2 ?
----- Original Message -----
From: Peter Olsson
Sent: Tuesday, August 10, 2010 5:23 PM
Subject: Re: [cc2-dev-l] How to get the selection point of an entity ?
__asm mov pPickPt, edi;
You have to be a bit careful with __asm statements. I often have to turn off optimization for the these parts in the release build.
You might be better off with asking for a point (RD_2DC) and then scan for the selected entity (if any).
You will need the function SetEachPickView() or SetEachPickViewEx(&PickedPt);
Do a DLScan and test interesting entities with if(EPick(pEntRec))
I'm trying to create a command that breaks a line to insert some drawing and I need the coordinates of the selection point.
I wrote a dynamic cursor that stores X and Y in global variables and it works fine except that it doesn't recognise midpoint etc modifiers.
The RDATA.H says that with RD_Pick1 you get the entity at esi and the pk point at edi. I know that esi and edi are ASM registers but am at a loss at how to retrieve the info with C++.
Thanks for any help...
- << Previous post in topic Next post in topic >>