4 个解决方案
#1
http://topic.csdn.net/u/20090801/16/b3279641-f600-4e05-a662-d947db30f74c.html?85705
同一个问题??
解决思路:
获取到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)
memdc.BitBlt(0,0,rect.Width(),rect.Height(),&dc,0,0,SRCCOPY)
pWndCal->OpenClipboard() //打开剪贴板
SetClipboardData(CF_BITMAP,bitmap.GetSafeHandle()) //向剪贴板增加地图
同一个问题??
解决思路:
获取到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)
memdc.BitBlt(0,0,rect.Width(),rect.Height(),&dc,0,0,SRCCOPY)
pWndCal->OpenClipboard() //打开剪贴板
SetClipboardData(CF_BITMAP,bitmap.GetSafeHandle()) //向剪贴板增加地图
#2
其实我的意思是想将feature保存到剪切板,然后再从剪切板粘贴到其它要素类型相同的层
#3
没有将要素复制到剪切板的方法。。
#4
我觉得你可以自己实现复制粘贴的吧,不用使用到剪贴板,复制后在内存中保留一份即可了!
#1
http://topic.csdn.net/u/20090801/16/b3279641-f600-4e05-a662-d947db30f74c.html?85705
同一个问题??
解决思路:
获取到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)
memdc.BitBlt(0,0,rect.Width(),rect.Height(),&dc,0,0,SRCCOPY)
pWndCal->OpenClipboard() //打开剪贴板
SetClipboardData(CF_BITMAP,bitmap.GetSafeHandle()) //向剪贴板增加地图
同一个问题??
解决思路:
获取到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)
memdc.BitBlt(0,0,rect.Width(),rect.Height(),&dc,0,0,SRCCOPY)
pWndCal->OpenClipboard() //打开剪贴板
SetClipboardData(CF_BITMAP,bitmap.GetSafeHandle()) //向剪贴板增加地图
#2
其实我的意思是想将feature保存到剪切板,然后再从剪切板粘贴到其它要素类型相同的层
#3
没有将要素复制到剪切板的方法。。
#4
我觉得你可以自己实现复制粘贴的吧,不用使用到剪贴板,复制后在内存中保留一份即可了!