arcengine下如何将选择的要素复制到剪切板?

时间:2022-01-27 18:55:33
我想重写复制剪切粘贴的功能,arcengine如何将选择到得要素保存到剪切板中呢?有高手做过这方面的吗?请指教~

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())              //向剪贴板增加地图

#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())              //向剪贴板增加地图

#2


其实我的意思是想将feature保存到剪切板,然后再从剪切板粘贴到其它要素类型相同的层

#3


没有将要素复制到剪切板的方法。。

#4


我觉得你可以自己实现复制粘贴的吧,不用使用到剪贴板,复制后在内存中保留一份即可了!