阅读:2746回复:5
[求助]实现选择元素
大家好,我想实现在PageLayout上点击或者拉框选择如:图例、标题、比例尺、文字等地图元素,现在能得到选中的IElement,但是不知道怎样把它突出显示出来哪位高手做过帮帮我吧多谢了。
|
|
1楼#
发布于:2007-07-19 15:40
Public Sub DrawCircle() <BR><BR>Dim pDoc As IMxDocument <BR>Dim pMap As IMap <BR>Dim pGraphicsContainer As IGraphicsContainer <BR>Dim pElement As IElement <BR>Dim pCircleArc As IConstructCircularArc <BR>Dim pSpRef As ISpatialReference <BR>Dim pSegmentCollection As ISegmentCollection <BR>Dim pActiveView As IActiveView <BR><BR>Set pDoc = ThisDocument <BR>Set pMap = pDoc.FocusMap <BR>Set pActiveView = pDoc.ActiveView <BR>Set pSpRef = pMap.SpatialReference <BR>Set pGraphicsContainer = pDoc.FocusMap <BR><BR>Set pCircleArc = New CircularArc <BR><BR>Dim pOrigin As IPoint <BR>Set pOrigin = New Point <BR>pOrigin.PutCoords -82.15, 42.56 <BR><BR>pCircleArc.ConstructCircle pOrigin, 50, False <BR>Dim pPolygon As IPolygon <BR>Set pPolygon = New Polygon <BR>Set pElement = New PolygonElement <BR><BR>Set pPolygon.SpatialReference = pSpRef <BR>Set pSegmentCollection = pPolygon <BR>pSegmentCollection.AddSegment pCircleArc <BR><BR>pElement.Geometry = pPolygon <BR><BR>pGraphicsContainer.AddElement pElement, -1 <BR>pActiveView.PartialRefresh esriViewGraphics, Nothing, Nothing <BR><BR>End Sub <BR><BR><BR><BR>OR <BR><BR><BR><BR>Sub DrawCircleFromSelectedPolygon() <BR>'Get the first selected feature <BR>Dim pMxDoc As IMxDocument <BR>Set pMxDoc = ThisDocument <BR>Dim pEnumFeature As IEnumFeature <BR>Set pEnumFeature = pMxDoc.FocusMap.FeatureSelection <BR>pEnumFeature.Reset <BR>Dim pFeature As IFeature <BR>Set pFeature = pEnumFeature.Next <BR>If pFeature Is Nothing Then <BR>MsgBox "Select a feature" <BR>Exit Sub <BR>End If <BR><BR>'Get the shape's centroid <BR>Dim pArea As IArea <BR>Set pArea = pFeature.ShapeCopy <BR>Dim pCenter As IPoint <BR>Set pCenter = pArea.Centroid <BR><BR>'Create a circle with given radius <BR>Dim pConstructCArc As IConstructCircularArc <BR>Set pConstructCArc = New CircularArc <BR>pConstructCArc.ConstructCircle pCenter, InputBox("radius:"), True <BR><BR>'Add the circle segment to a polygon geometry <BR>Dim pSegmentCollection As ISegmentCollection <BR>Set pSegmentCollection = New Polygon <BR>pSegmentCollection.AddSegment pConstructCArc <BR>Dim pPolygon As IPolygon <BR>Set pPolygon = pSegmentCollection <BR>pPolygon.Close <BR><BR>'Create a graphic element from the circle <BR>Dim pGraphCont As IGraphicsContainer <BR>Set pGraphCont = pMxDoc.ActiveView <BR>Dim pElement As IElement <BR>Set pElement = New PolygonElement <BR>pElement.Geometry = pPolygon <BR>pGraphCont.AddElement pElement, 0 <BR><BR>'refresh <BR>pMxDoc.ActiveView.PartialRefresh esriViewGraphics, Nothing, pPolygon.Envelope <BR>
|
|
|
2楼#
发布于:2007-07-21 10:35
<P>ControlsSelectTool不是挺好吗,还要怎么突出呢?</P>
[此贴子已经被作者于2007-7-21 10:36:18编辑过]
|
|
|
3楼#
发布于:2007-07-22 13:55
谢谢两位!
|
|
4楼#
发布于:2008-04-10 12:16
<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" />
|
|
5楼#
发布于:2008-04-22 16:50
<P>还有一种思路,就是利用通过改变绘制element相关的symbol的颜色来实现效果。</P>
|
|