CBitmap bmp;
.................//其他操作 ,bmp是一个依赖于设备的位图,DDB !
BOOL ret = ::OpenClipboard(NULL);
if (ret){
::EmptyClipboard();
HANDLE hadndle = ::SetClipboardData(CF_BITMAP, bmp.GetSafeHandle()) ; //CF_BITMAP支持DDB
if (hadndle)
{
//注意调用detach()函数。这是非常重要的,因为GDI(图形设备接口)对象已经转移到了剪贴板中了
bmp.Detach();
}
:CloseClipboard();
}
//ATL::Cimage 变量无法直接导入剪切板的原因: 应该是内部的数据是DIB .
//简单的解决办法是将位图绘制到DDB,然后再导入剪切板。