//#include // for CImage
//#include
//#include // for abs
本文章描述了使用将CF_METAFILEPICT,CF_DIB和CF_BITMAP三种形式的剪贴板数据粘贴到程序中进行显示的方法.
本文章中代码编译环境为VS2003(VC71).使用了ATL类CImage
// CF_METAFILEPICT类型的图形
int PasteMetaGraph(CDC * pDC)
{
// 1判断剪切板中数据格式
COleDataObject obj;
FORMATETC fm;memset(&fm,0,sizeof(fm));
obj.AttachClipboard();
BOOL bRet = obj.IsDataAvailable(CF_METAFILEPICT,&fm);
if(!bRet)
return 0;
GLOBALHANDLE hGMem = obj.GetGlobalData(CF_METAFILEPICT);
if(hGMem==NULL)
return 0;
LPMETAFILEPICT lpMFP = (LPMETAFILEPICT)GlobalLock(hGMem) ;
if(lpMFP==NULL)
return 0;
// 2计算图像的大小
CImage img1;
img1.Create(1,1,32);
CDC* pDC