在内存DC上使用SelectObject()来选择位图.这让我感到困惑.
我读了msdn但仍然不知道如何填充SelectObject()的第二个参数.
解决方法:
调用OpenClipbard()
打开剪贴板并使用CF_BITMAP类型调用GetClipboardData()
以获取存储在剪贴板上的图像数据的句柄.如果剪贴板上没有图像,则返回NULL句柄.
然后,在窗口的WM_PAINT处理程序中,使用BeginPaint()
获取用于绘制到窗口的设备上下文,并使用CreateCompatibleDC()
为位图创建内存设备上下文.使用内存DC上的SelectObject()
选择位图,最后使用BitBlt()
将位图从内存DC blit到窗口的DC上.不要忘记清理 – 调用DeleteDC()
删除内存DC,并调用EndPaint()
结束绘图.
最后,当你完成后拨打CloseClipboard()
.请注意,剪贴板拥有位图句柄,一旦调用CloseClipboard(),位图就会被销毁.因此,如果您想在关闭剪贴板后挂起位图,则需要复制它.