阅读:2297回复:3
怎么实现在在pagelayoutcontrol1里添加指北针啊?
各大高手!!!怎么实现在在pagelayoutcontrol1里添加指北针阿,arcgis里自带的例子也没有实现,只有命令按钮在,是怎么回事阿??
|
|
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> |
|
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> |
|
3楼#
发布于:2008-08-27 10:39
<P>补充三楼:我qq729274940</P>
<P>解决了别忘了告诉我啊,希望我们能共同讨论</P> |
|