I'm building an Add-in solution in ArcGIS 10 that contains a custom tool. I'd like to borrow the functionality of the lasso selection tool without reinventing the wheel. Is there a way to intercept the geometry of the lasso selection area from the mouse up event? I want to pass the geometry of the lasso area to a spatial filter.
I know how to get control of the lasso tool with the following code in my custom tool class:
private ITool m_SelectTool;
protected override void OnActivate()
{
UID uid = new UID();
uid.Value = "esriArcMapUI.SelectByLassoTool";
ICommandItem commandItem = ArcMap.Application.Document.CommandBars.Find(uid, false, false);
ICommand command = commandItem.Command;
m_SelectTool = (ITool)command;
}
Answer
I don't think this is possible (intercepting another tool's private data/events), but the good news is that reinventing the wheel is pretty easy when the inventor shows you how to do it.
See the Custom selection extension Add-In Sample, particularly the SelectByLineTool
class. You could tweak it to use a NewPolygonFeedback
instead of a line feedback, and add points to it in OnMouseMove instead of OnMouseDown, and Stop the feedback in OnMouseDown instead of OnDoubleClick.
No comments:
Post a Comment