您的位置:首页 > 编程语言 > C语言/C++

VC++ 通过剪切板获得文档中的图片

2016-01-14 14:51 477 查看
// 利用剪切板获得图片
// 打开剪切板(占用状态,此时进行复制粘贴等操作将无效果)
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();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  windows 图片 vc C++