阅读:4839回复:13
[求助]地图拷贝到PageLayoutControl控件中,可以打印出地图,但是PageLayoutControl控件中地图不可见??
<P>我在Form窗体上放置了一个PageLayoutControl控件,利用拷贝的方法将MapControl中的地图拷贝到PageLayoutControl控件中,打印是可以打出来结果,可是PageLayoutControl控件中是一片空白,希望有高手回答哦~~~</P>
<P>急哦~~~</P> <P>拷贝代码如下:</P> <P>Public Sub CopyAndOverwriteMap()<BR><BR> Dim pObjectCopy As IObjectCopy<BR> Set pObjectCopy = New ObjectCopy<BR> <BR> Dim pToCopyMap As IUnknown<BR> Set pToCopyMap = m_pHookHelper.ActiveView.FocusMap<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> 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 = m_pHookHelper.ActiveView.Extent<BR> PageLayoutControl1.Refresh </P> <P>End Sub</P> |
|
1楼#
发布于:2005-06-02 18:04
<P><BR>Private Sub CopyFocusMap()<BR>' Dim i As Integer</P>
<P>' For i = 0 To m_pPMap.LayerCount - 1<BR>' PageLayoutControl1.ActiveView.FocusMap.AddLayer m_pPMap.layer(i)<BR>' Next<BR> '获取 IObjectCopy 接口<BR> Dim pObjectCopy As IObjectCopy<BR> Set pObjectCopy = New ObjectCopy</P> <P> '获取 IUnknown 接口 (源“Map”)<BR> Dim pToCopyMap As IUnknown<BR> Set pToCopyMap = frmMap.map1.ActiveView.FocusMap 'm_pPactiveview.FocusMap</P> <P> '获取 IUnknown 接口 (参与复制的源“Map”)<BR> Dim pCopiedMap As IUnknown<BR> Set pCopiedMap = pObjectCopy.Copy(pToCopyMap)</P> <P> '获取 IUnknown 接口 (目的“Map”)<BR> Dim pToOverwriteMap As IUnknown<BR> Set pToOverwriteMap = PageLayoutControl1.ActiveView.FocusMap</P> <P> '复制 Map<BR> pObjectCopy.Overwrite pCopiedMap, pToOverwriteMap</P> <P> <BR> '设置 PageLayoutControl 的 Extent<BR> <BR> PageLayoutControl1.Extent = frmMap.map1.Extent 'm_pPactiveview.Extent ''hzm<BR> <BR> '刷新显示<BR> PageLayoutControl1.Refresh esriViewGraphics</P> <P>End Sub</P> |
|
|
2楼#
发布于:2005-06-02 18:47
<P>Public Sub CopyAndOverwriteMap()<BR></P>
<P> Dim i As Integer<BR> <BR> For i = 0 To m_pHookHelper.FocusMap.LayerCount - 1<BR> PageLayoutControl1.ActiveView.FocusMap.AddLayer m_pHookHelper.FocusMap.Layer(i)<BR> Next i<BR> Dim pObjectCopy As IObjectCopy<BR> Set pObjectCopy = New ObjectCopy<BR> <BR> Dim pToCopyMap As IUnknown<BR> Set pToCopyMap = m_pHookHelper.ActiveView.FocusMap<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</P> <P> PageLayoutControl1.ActiveView.Extent = m_pHookHelper.ActiveView.Extent<BR> PageLayoutControl1.Refresh esriViewGraphics</P> <P>End Sub</P> <P>还是一片空白阿???</P> |
|
3楼#
发布于:2005-06-02 18:50
<P>我把这一句</P>
<P>PageLayoutControl1.ActiveView.Extent = m_pHookHelper.ActiveView.Extent</P> <P>改为:</P> <P>PageLayoutControl1.Extent = m_pHookHelper.ActiveView.Extent.Extent </P> <P>还照样是一片空白</P> <P>为什么???<BR></P> |
|
4楼#
发布于:2005-06-02 21:08
关注一下
|
|
|
5楼#
发布于:2005-06-03 09:51
<P>怎么还是没人解决呢???</P>
|
|
6楼#
发布于:2005-06-03 10:52
<P>我发的代码里的 m_pPMap</P>
<P>是定义成imap的</P> <P>注意你的定义哦</P> |
|
|
7楼#
发布于:2005-06-03 11:57
<P>Private m_pMap As IMap</P>
<P>Set m_pMap = m_pHookHelper.FocusMap</P> <P> For i = 0 To m_pMap.LayerCount - 1<BR> PageLayoutControl1.ActiveView.FocusMap.AddLayer m_pMap.Layer(i)<BR> Next i</P> <P>可是还是一片空白???</P> <P>能否发一个可以运行的例子看看呢?</P> <P>要不,加我QQ:30196769</P> <P>还请您多帮忙哦~~~</P> |
|
8楼#
发布于:2005-06-03 13:37
<P>这边怎么不能上传?</P>
|
|
9楼#
发布于:2005-06-03 15:49
看看是不是这个问题?
<P>我认为你的问题在这里,因为你在PageLayoutControl1上没有一个 mapframe,试试增加一个mapframe看看,我也不知道如何通过代码加,但是通过工具加了一个mapframe后好像就行了,</P>
<P>Dim m_pMapFrame As IMapFrame<BR> Set m_pMapFrame = PageLayoutControl1.GraphicsContainer.FindFrame(PageLayoutControl1.ActiveView.FocusMap)<BR> m_pMapFrame.ExtentType = esriExtentScale</P> <P><BR><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em08.gif" /></P> |
|
上一页
下一页