当前位置 : 主页 > 编程语言 > c++ >

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

来源:互联网 收集:自由互联 发布时间:2021-06-23
在内存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(),位图就会被销毁.因此,如果您想在关闭剪贴板后挂起位图,则需要复制它.

网友评论