ArcGIS Engine下实现地图输出
作者:罗雄 文章来源:ESRI中国(北京)有限公司 点击数:1432 更新时间:2008-9-18
我们在用ArcGIS Engine定制开发的时候,常常需要将当前的地图文档输出,或者以bmp的形式拷贝到剪贴板,那么到底该如何实现这些操作呢?这篇文章将会给我们介绍两种常用的方法。
一、实现像ArcMap的Edit菜单下Copy Map to Clipboard
实际上AE并没有提供实现这一功能的方法,但我们可以采用Windows32 API函数来实现。
思路:获取到MapControl的句柄然后实现一个一般的剪贴板拷贝程序,将MapControl范围内的视图以位图形式复制过去。以下代码片段供参考:
CWnd *pWndCal =GetDlgItem(IDC_MAPCONTROL1) //获取指MapControl的指针
CBitmap bitmap
CClientDC dc(pWndCal) //获得MapControl客户区的设备环境
memdc.CreateCompatibleDC(&dc) //创建和指定dc兼容的内存dc
pWndCal->GetClientRect(rect) //获得MapControl的范围(Client Rectangle)
//创建一个和指定设备环境兼容的位图bitmap.CreateCompatibleBitmap(&dc,rect.Width(),rect.Height())
CBitmap* poldbitmap = memdc.SelectObject(&bitmap)