我想知道如何在MFC代码中从CImage获取CBitmap。
问题是MSDN告诉我使用CImage :: m_hBitmap从句柄生成CBitmap。但不幸的是CImage :: m_hBitmap是CImage的私有。我有问题吗?
MSDN的代码摘录:
CImage image;
// Code to create load/create image goes here
// ...
CBitmap* pBitmap = CBitmap::FromHandle(image.m_hBitmap);
谢谢!
答案 0 :(得分:4)
要从m_hBitmap获取句柄,请直接使用CImage对象。 MSDN的在线帮助似乎没有正确更新。
MFC开发人员添加了一个运营商HBITMAP,因此从CImage到HBITMAP的转换无需用户干预即可运行。
内联代码,用于在头文件atlimage.h中访问m_hBitmap:
inline CImage::operator HBITMAP() const throw()
{
return (m_hBitmap);
}
为了使工作代码 imge.m_hBitmap 必须仅替换为图片。
CImage image;
// Code to create load/create image goes here
// ...
CBitmap* pBitmap = CBitmap::FromHandle(image);
就是这样。
编辑:我也找到了另一种解决方案,see here。