MFC 7.0 C ++如何从CImage获取CBitmap

时间:2013-03-03 06:07:37

标签: c++ mfc

我想知道如何在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);

谢谢!

1 个答案:

答案 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