使用SelectObject()在内存DC上选择位图。这让我感到困惑。我已经阅读了msdn,但仍然不知道如何填写SelectObject()的第二个参数。
使用SelectObject()在内存DC上选择位图。这让我感到困惑。我已经阅读了msdn,但仍然不知道如何填写SelectObject()的第二个参数。
OpenClipbard()
打开剪贴板,然后使用CF_BITMAP
类型调用GetClipboardData()
获取存储在剪贴板上的图像数据句柄。如果剪贴板中没有图像,则将返回NULL句柄。
接下来,在窗口的WM_PAINT
处理程序中,使用BeginPaint()
获取设备上下文以绘制窗口,并使用CreateCompatibleDC()
创建一个内存设备上下文以进行位图绘制。使用SelectObject()
在内存DC上选择位图,最后使用BitBlt()
将位图从内存DC复制到窗口的DC上。别忘了清理 - 调用DeleteDC()
删除内存DC,并调用EndPaint()
结束绘制。
最后,在完成操作后调用CloseClipboard()
。请注意,剪贴板拥有位图句柄,一旦调用了CloseClipboard()
,位图将被销毁。因此,如果您想在关闭剪贴板后保留位图,则需要复制它。