默认头像
路人甲
路人甲
  • 注册日期2005-10-12
  • 发帖数28
  • QQ
  • 铜币244枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1470回复:3

如何实现ArcMap里面的复制视图到剪贴板的功能!

楼主#
更多 发布于:2006-01-04 10:33
如何实现ArcMap里面的复制视图到剪贴板的功能!斑竹出手啊!
喜欢0 评分0
默认头像
路人甲
路人甲
  • 注册日期2005-10-12
  • 发帖数28
  • QQ
  • 铜币244枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2006-01-04 20:36
没人能揭贴,试问天下高手在和处,帝国?
举报 回复(0) 喜欢(0)     评分
默认头像
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
2楼#
发布于:2006-01-05 10:07
Public Sub CopyAndOverwriteMap()
   
 'Get IObjectCopy interface
 Dim pObjectCopy As IObjectCopy
 Set pObjectCopy = New ObjectCopy

 'Get IUnknown interface (map to copy)
 Dim pToCopyMap As IUnknown
 Set pToCopyMap = PageLayoutControl1.ActiveView.FocusMap

 'Get IUnknown interface (copied map)
 Dim pCopiedMap As IUnknown
 Set pCopiedMap = pObjectCopy.Copy(pToCopyMap)

 'Get IUnknown interface (map to overwrite)
 Dim pToOverwriteMap As IUnknown
 Set pToOverwriteMap = MapControl1.Map
 
 'Overwrite the MapControl's map
 pObjectCopy.Overwrite pCopiedMap, pToOverwriteMap

 SetMapExtent

End Sub
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
默认头像
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
3楼#
发布于:2006-01-05 10:13

上面是以前发的,没用到clipboard

下面这个用了

'sample VB code for clipboard, this is not tested
'you can look up the relevant Win32 api functions

Dim hMemoryDC As Long
Dim hBitmap As Long
Dim lWidth As Long, lHeight As Long

'get the width and height of the map, make sure its in pixels, watch out for 3D borders etc.
lWidth = MapControl1.Width
lHeight = MapControl1.Height


hMemoryDC = CreateCompatibleDC(0)  'screen DC
hBitmap = CreateCompatibleBitmap(hMemoryDC, lWidth, lHeight)

If hBitmap <> 0 Then

   'select the bitmap into the DC
   SelectObject hMemoryDC, hBitmap

   'draw the map to the DC
   pActiveView.Draw(hMemoryDC, Nothing)

   'open clipboard, use whatever hWnd you like
   OpenClipboard Form1.hWnd

   'clear out clipboard
   EmptyClipboard

   'copy the bits to the clipboard
   SetClipboardData CF_BITMAP, hBitmap

   'close clipboard
   CloseClipboard

End If

'cleanup
DeleteDC hMemoryDC
DeleteObject hBitmap
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
默认头像

返回顶部