// 利用剪切板获得图片
// 打开剪切板(占用状态,此时进行复制粘贴等操作将无效果)
OpenClipboard(NULL);
// 清除剪切板内容
EmptyClipboard();
// 不关闭则复制操作不起作用,无法复制到剪切板里
CloseClipboard();
// 取得第一张图
shape = shapes.Item(1);
shape.Select();
// 复制到剪切板
selection.CopyAsPicture();
// 打开剪切板,并且剪切板里存在图片
if (OpenClipboard(NULL) &&
IsClipboardFormatAvailable(CF_BITMAP))
{
// 取得剪切板中的图片数据
HGLOBAL hClipBoard = GetClipboardData(CF_BITMAP);
if (hClipBoard)
{
//从剪贴板中取出一个内存的句柄
// 获取内存大小
int nSize = GlobalSize(hClipBoard);
//对内存块进行加锁,将内存句柄值转化为一个指针,并将内存块的引用计数器加一,内存中的数据也返回到指针型变量中
data.pchPic = new char[nSize];
memcpy(data.pchPic, GlobalLock(hClipBoard), nSize);
// 将数据存储
//将内存块的引用计数器减一
GlobalUnlock(hClipBoard);
//关闭剪贴板,释放剪贴板资源的占用权
CloseClipboard();
}
}
}
VC++ 通过剪切板获得文档中的图片
最新推荐文章于 2021-08-26 13:11:07 发布