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

来源:互联网 发布:网络通信基础 编辑:程序博客网 时间:2024/06/15 16:04
// 利用剪切板获得图片// 打开剪切板(占用状态,此时进行复制粘贴等操作将无效果)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();}}}
0 0