雨零
路人甲
路人甲
  • 注册日期2005-09-04
  • 发帖数13
  • QQ
  • 铜币144枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2570回复:6

[求助]添加pagelayoutControl

楼主#
更多 发布于:2005-12-10 23:09
<P>请教各位大侠:用什么方法下载一个已有的mxd到我的程序中(VB+engine),达到两个目的,1使pagelayoutcontrol与mapcontrol同步,即当mapcontrol中的内容变化后,pagelayoutcontrol也能与其保持一致;2在它们变化后,pagelayout原来的的图框比例尺等依然存在(程序所用mxd是事先在arcmap里配好的,带有图框图例比例尺等)。</P>
<P>哪位高人做过这种,指点一下哈</P><img src="images/post/smile/dvbbs/em12.gif" />
喜欢0 评分0
美丽人生,美丽心情
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15947
  • QQ554730525
  • 铜币25339枚
  • 威望15364点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2005-12-11 13:27
<P>让两个视图同步更新就行了吧,看看下面的函数,应该 有点用</P>
<P>Public Sub CopyAndOverwriteMap()</P>
<P>Dim pObjectCopy As IObjectCopy<BR>    Set pObjectCopy = New ObjectCopy<BR>    <BR>    Dim pToCopyMap As IUnknown<BR>    Set pToCopyMap = MapControl1.ActiveView.FocusMap<BR>    <BR>    <BR>    Dim pCopiedMap As IUnknown<BR>    Set pCopiedMap = pObjectCopy.copy(pToCopyMap)<BR>    <BR>    Dim pToOverwriteMap As IUnknown<BR>    Set pToOverwriteMap = Me.PageLayoutControl1.ActiveView.FocusMap<BR>    <BR>    pObjectCopy.Overwrite pCopiedMap, pToOverwriteMap<BR>    <BR>    If pToOverwriteMap Is Nothing Then<BR>        Exit Sub<BR>    End If<BR>    <BR>    Dim m_pMapFrame As IMapFrame<BR>    Set m_pMapFrame = PageLayoutControl1.GraphicsContainer.FindFrame(PageLayoutControl1.ActiveView.FocusMap)<BR>    m_pMapFrame.ExtentType = esriExtentScale<BR>    <BR>    PageLayoutControl1.Page.IsPrintableAreaVisible = True</P>
<P>    PageLayoutControl1.ActiveView.Extent = MapControl1.ActiveView.Extent<BR>    PageLayoutControl1.Refresh esriViewGeography<BR>    <BR>    <BR>    PageLayoutControl1.ZoomToWholePage</P>
<P>End Sub</P>
举报 回复(0) 喜欢(0)     评分
雨零
路人甲
路人甲
  • 注册日期2005-09-04
  • 发帖数13
  • QQ
  • 铜币144枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-12-15 17:55
先谢谢gis先生,可是用了这个方法后,再打开另一个mxd,mapsurround还是原来的,怎么办呢?
美丽人生,美丽心情
举报 回复(0) 喜欢(0)     评分
FOLEY
路人甲
路人甲
  • 注册日期2005-11-03
  • 发帖数16
  • QQ
  • 铜币194枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2005-12-18 12:53
这种方法,应该是把mapctrl里的所有要素copy到本pagelayout里,是否否能实现只拷贝mapctrl的当前视窗范围或者是指定范围
举报 回复(0) 喜欢(0)     评分
雨零
路人甲
路人甲
  • 注册日期2005-09-04
  • 发帖数13
  • QQ
  • 铜币144枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2005-12-20 20:30
<P>那么mapsurround怎么办?</P>
美丽人生,美丽心情
举报 回复(0) 喜欢(0)     评分
mms999
路人甲
路人甲
  • 注册日期2005-01-11
  • 发帖数13
  • QQ
  • 铜币212枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2006-01-20 08:44
<P>有更好的办法:</P>
<P>使用 axMpaControl1.map = axPagelayoutControl1.Activeview.Focusmap</P>

<P>但是必须保证当前只有一个Activeview is actived</P>
举报 回复(0) 喜欢(0)     评分
jaosn314
路人甲
路人甲
  • 注册日期2005-12-30
  • 发帖数3
  • QQ
  • 铜币112枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2006-07-04 15:44
<P><img src="images/post/smile/dvbbs/em02.gif" />...</P>
<P>有一個小問題。。。Annotation的資訊沒有跟過來。。PAGELAYOUT</P>
<P>希望各位高手...相助!!</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部