阅读:1470回复:3
如何实现ArcMap里面的复制视图到剪贴板的功能!
如何实现ArcMap里面的复制视图到剪贴板的功能!斑竹出手啊!
|
|
1楼#
发布于:2006-01-04 20:36
没人能揭贴,试问天下高手在和处,帝国?
|
|
2楼#
发布于:2006-01-05 10:07
Public Sub CopyAndOverwriteMap() 'Get IObjectCopy interface Dim pObjectCopy As IObjectCopySet pObjectCopy = New ObjectCopy'Get IUnknown interface (map to copy) Dim pToCopyMap As IUnknownSet pToCopyMap = PageLayoutControl1.ActiveView.FocusMap'Get IUnknown interface (copied map) Dim pCopiedMap As IUnknownSet pCopiedMap = pObjectCopy.Copy(pToCopyMap)'Get IUnknown interface (map to overwrite) Dim pToOverwriteMap As IUnknownSet pToOverwriteMap = MapControl1.Map'Overwrite the MapControl's map pObjectCopy.Overwrite pCopiedMap, pToOverwriteMap SetMapExtent End Sub |
|
|
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 |
|
|