我自绘了多幅图在view中,想把这些图都剪贴到剪贴板中,这些图是emf格式,有哪位有什么好办法?windows的剪贴板好像是绑定窗口的,一个窗口对应一个剪贴板,不能存多幅图。ole剪贴板应该可以,但是我只能把一副图放入剪贴板,多幅图就报错。代码如下:
COleDataSource* pData = new COleDataSource;

for (int i=0; i<m_nCureveCount; i++)
{
CClientDC dc(this); HENHMETAFILE hEnhMetafile = m_pCurveList[i].SaveAsEmf(dc.GetSafeHdc()); STGMEDIUM* pStgm = new STGMEDIUM;
pStgm->tymed = TYMED_ENHMF;
pStgm->hEnhMetaFile = hEnhMetafile; pData->CacheData( CF_ENHMETAFILE, pStgm );
//DeleteEnhMetaFile(hEnhMetafile);
delete pStgm;
}
pData->SetClipboard();
         delete pData;
第一次循环正常,第二次就会出现读取位置发生冲突。不知为何?

解决方案 »

  1.   

    pData->CacheData( CF_ENHMETAFILE, pStgm ); 是这句报错么?
      

  2.   

    是的,错误为:
     0x769df72f 处最可能的异常: 0xC0000005: 读取位置 0xbaadf00d 时发生访问冲突
      

  3.   

    要不,用 CacheGlobalData试试!
      

  4.   

    http://hi.baidu.com/%B1%F8%B8%EA%D5%BD%EA%AA/blog/item/b0976e29b76893fd98250a4d.html
    建议看看这个