langyan8973
路人甲
路人甲
  • 注册日期2006-07-12
  • 发帖数90
  • QQ
  • 铜币456枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2466回复:5

[求助]实现选择元素

楼主#
更多 发布于:2007-07-18 19:31
大家好,我想实现在PageLayout上点击或者拉框选择如:图例、标题、比例尺、文字等地图元素,现在能得到选中的IElement,但是不知道怎样把它突出显示出来哪位高手做过帮帮我吧多谢了。
喜欢0 评分0
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
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>
举报 回复(0) 喜欢(0)     评分
kisssy
卧底
卧底
  • 注册日期2004-04-18
  • 发帖数235
  • QQ
  • 铜币614枚
  • 威望2点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2007-07-21 10:35
<P>ControlsSelectTool不是挺好吗,还要怎么突出呢?</P>
[此贴子已经被作者于2007-7-21 10:36:18编辑过]
个人专栏: https://zhuanlan.zhihu.com/c_165676639
举报 回复(0) 喜欢(0)     评分
langyan8973
路人甲
路人甲
  • 注册日期2006-07-12
  • 发帖数90
  • QQ
  • 铜币456枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2007-07-22 13:55
谢谢两位!
举报 回复(0) 喜欢(0)     评分
ienown
路人甲
路人甲
  • 注册日期2006-11-14
  • 发帖数23
  • QQ6805791
  • 铜币149枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2008-04-10 12:16
<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" />
举报 回复(0) 喜欢(0)     评分
Jackie_Zong
路人甲
路人甲
  • 注册日期2007-08-03
  • 发帖数12
  • QQ
  • 铜币144枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2008-04-22 16:50
<P>还有一种思路,就是利用通过改变绘制element相关的symbol的颜色来实现效果。</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部