加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

VC win32 API编程:如何从剪贴板中获取图像并将其显示在Windows

发布时间:2020-12-16 09:24:50 所属栏目:百科 来源:网络整理
导读:在内存DC上使用SelectObject()来选择位图.这让我感到困惑. 我读了msdn但仍然不知道如何填充SelectObject()的第二个参数. 解决方法 调用 OpenClipbard() 打开剪贴板并使用CF_BITMAP类型调用 GetClipboardData() 以获取存储在剪贴板上的图像数据的句柄.如果剪
在内存DC上使用SelectObject()来选择位图.这让我感到困惑.
我读了msdn但仍然不知道如何填充SelectObject()的第二个参数.

解决方法

调用 OpenClipbard()打开剪贴板并使用CF_BITMAP类型调用 GetClipboardData()以获取存储在剪贴板上的图像数据的句柄.如果剪贴板上没有图像,则返回NULL句柄.

然后,在窗口的WM_PAINT处理程序中,使用BeginPaint()获取用于绘制到窗口的设备上下文,并使用CreateCompatibleDC()为位图创建内存设备上下文.使用内存DC上的SelectObject()选择位图,最后使用BitBlt()将位图从内存DC blit到窗口的DC上.不要忘记清理 – 调用DeleteDC()删除内存DC,并调用EndPaint()结束绘图.

最后,当你完成后拨打CloseClipboard().请注意,剪贴板拥有位图句柄,一旦调用CloseClipboard(),位图就会被销毁.因此,如果您想在关闭剪贴板后挂起位图,则需要复制它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读