追风浪子
路人甲
路人甲
  • 注册日期2004-06-08
  • 发帖数166
  • QQ
  • 铜币782枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1295回复:2

如何把MapControl里的Map加入PageLayoutControl里,并使它们关联在一起就象ArcMap里一样 (AO+VB)

楼主#
更多 发布于:2005-03-27 17:32
<P>如何把MapControl里的Map加入PageLayoutControl里,并使它们关联(例:在一个里放大另一个也放大)在一起就象ArcMap里一样</P>
<P>不知道大家怎么解决这个问题哦的?</P>
<P>我用的 方法:</P>
<P>  (1) MapCtrl 是MapControl   PageCtrl 是PageLayoutControl</P>
<P>      Dim pObjectCopy As IObjectCopy
      Set pObjectCopy = New ObjectCopy
      Dim pToCopyMap As IUnknown
      Set pToCopyMap = MapCtrl.Map    
      Dim pCopiedMap As IUnknown
      Set pCopiedMap = pObjectCopy.Copy(pToCopyMap)
      Dim pToOverwriteMap As IUnknown
      Set pToOverwriteMap = PageCtl.ActiveView.FocusMap
      pObjectCopy.Overwrite pCopiedMap, pToOverwriteMap</P>
<P>      Set m_pMapFrame = PageCtl.GraphicsContainer.FindFrame(PageCtl.ActiveView.FocusMap)
      m_pMapFrame.ExtentType = esriExtentScale
  
      PageCtl.Page.IsPrintableAreaVisible = True</P>
<P>用这个方法,PageLayoutControl里的图总是不能充满整个区域,并且放大后,图元也放大了</P>
<P>(2)</P>
<P>        Dim ipMapFrame As IMapFrame
        Set ipMapFrame = New MapFrame  
</P>
<P>        
        Set ipMapFrame.Map = MapCtrl.Map
        Dim ipElement As IElement</P>
<P>        Set ipElement = ipMapFrame
        Dim ipEnvelope As IEnvelope
        Set ipEnvelope = PageCtl.Extent</P>
<P>        PageCtl.AddElement ipElement, ipEnvelope</P>
<P>给方法使他们能关联在一起,但MapControl中的图总是不能充满整个区域</P>
喜欢0 评分0
fyl
fyl
路人甲
路人甲
  • 注册日期2004-05-12
  • 发帖数43
  • QQ
  • 铜币363枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-03-29 11:30
这些代码要放在哪里才行呀?
如题
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15947
  • QQ554730525
  • 铜币25339枚
  • 威望15364点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
2楼#
发布于:2005-03-29 12:04
这个在例子里有的,你看看mapcontrol和pagelayerout那几个例子就可以
举报 回复(0) 喜欢(0)     评分
游客

返回顶部