wjhgis
路人甲
路人甲
  • 注册日期2005-03-11
  • 发帖数67
  • QQ
  • 铜币359枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2104回复:3

怎么实现在在pagelayoutcontrol1里添加指北针啊?

楼主#
更多 发布于:2005-04-04 20:57
各大高手!!!怎么实现在在pagelayoutcontrol1里添加指北针阿,arcgis里自带的例子也没有实现,只有命令按钮在,是怎么回事阿??
喜欢0 评分0
wjhgis
路人甲
路人甲
  • 注册日期2005-03-11
  • 发帖数67
  • QQ
  • 铜币359枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-04-05 09:20
<P>急啊!有那位高手能提醒一下吗?</P><P>采用下列语句怎么实现不了呢(让选择对话框出项)</P><P>Dim pStyleSelector As IStyleSelector
Set pStyleSelector = New NorthArrowSelector</P><P>pStyleSelector.DoModal 0
。。。。。。。</P>
举报 回复(0) 喜欢(0)     评分
生在初夏
路人甲
路人甲
  • 注册日期2008-08-14
  • 发帖数6
  • QQ
  • 铜币118枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2008-08-27 10:37
<P> Private Function CreatSurround(ByVal pID As UID, ByVal pEnv As IEnvelope, _<BR>    ByVal strName As String, ByVal pPagelayout As IPageLayout) As IMapSurround<BR>        Dim pGraphicsContainer As IGraphicsContainer<BR>        Dim pActiveView As IActiveView<BR>        Dim pMapsurroundFrame As IMapSurroundFrame<BR>        Dim pMapFrame As IMapFrame<BR>        Dim pElement As IElement<BR>        Dim pMap As IMap</P>
<P>        pGraphicsContainer = pPagelayout<BR>        pActiveView = pPagelayout<BR>        pMap = pActiveView.FocusMap</P>
<P>        pMapFrame = pGraphicsContainer.FindFrame(pMap)<BR>        '产生一个surruond对象<BR>        pMapsurroundFrame = pMapFrame.CreateSurroundFrame(pID, Nothing)<BR>        pMapsurroundFrame.MapSurround.Name = strName<BR>        pElement = pMapsurroundFrame<BR>        'pEnv确定mapsurround放置的范围<BR>        pElement = pEnv<BR>        pElement.Activate(pActiveView.ScreenDisplay)</P>
<P>        Dim pTrack As TrackCancel<BR>        pTrack = New CancelTracker<BR>        '绘制在控件上<BR>        pElement.Draw(pActiveView.ScreenDisplay, pTrack)</P>
<P>        pGraphicsContainer.AddElement(pElement, 0)<BR>        Return pMapsurroundFrame.MapSurround</P>
<P>    End Function<BR>    Private Sub AddMapSurround(ByVal pEnv As IEnvelope)<BR>        Dim pActiveView As IActiveView<BR>        Dim pID As New UID<BR>        Dim pMapSurround As IMapSurround<BR>        Dim pMarkerNorthArrow As IMarkerNorthArrow<BR>        Dim pCharacterMarkerSymbol As ICharacterMarkerSymbol</P>
<P>        '获得控件的视图<BR>        pActiveView = AxPageLayoutControl1.PageLayout<BR>        pID.Value = "esricarto.markernortharrow"<BR>        pMapSurround = CreatSurround(pID, pEnv, "NorthArrow", AxPageLayoutControl1.PageLayout)</P>
<P>        '改变指北针的样式<BR>        pMarkerNorthArrow = pMapSurround<BR>        pCharacterMarkerSymbol = pMarkerNorthArrow.MarkerSymbol</P>
<P>        '改变指北针的样式,characterindex值可以调节,以显示不同的指北针样式<BR>        pCharacterMarkerSymbol.CharacterIndex = 200<BR>        pMarkerNorthArrow.MarkerSymbol = pCharacterMarkerSymbol</P>
<P>        '刷新图层<BR>        pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, Nothing, Nothing)<BR>    End Sub</P>
<P>pEnv指明要放置元素的范围大小,它可以通过IpagelayoutcontrolDefault::Trackrectangle获得,可是Ipagelayoutcontroldefault::trackrectangle怎么用,我不会,只要解决了这个问题这方法就算是成了</P>
举报 回复(0) 喜欢(0)     评分
生在初夏
路人甲
路人甲
  • 注册日期2008-08-14
  • 发帖数6
  • QQ
  • 铜币118枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2008-08-27 10:39
<P>补充三楼:我qq729274940</P>
<P>解决了别忘了告诉我啊,希望我们能共同讨论</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部