【问题标题】:MFC 7.0 C++ How to get a CBitmap from CImageMFC 7.0 C++ 如何从 CImage 获取 CBitmap
【发布时间】:2013-03-03 06:07:37
【问题描述】:

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

谢谢!

【问题讨论】:

    标签: c++ mfc


    【解决方案1】:

    要从 m_hBitmap 获取句柄,请直接使用 CImage 对象。 MSDN 上的在线帮助似乎没有正确更新。

    MFC 开发人员添加了一个运算符 HBITMAP,因此从 CImage 到 HBITMAP 的转换无需用户干预即可工作。

    在头文件 atlimage.h 中访问 m_hBitmap 的内联代码:

    inline CImage::operator HBITMAP() const throw()
    {
      return (m_hBitmap);
    }
    

    为了获得有效的代码,imge.m_hBitmap 必须仅替换为 image

    CImage image;
    // Code to create load/create image goes here
    // ...
    CBitmap* pBitmap = CBitmap::FromHandle(image);
    

    就是这样。

    编辑:我也找到了替代解决方案,see here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-11
      • 1970-01-01
      • 1970-01-01
      • 2020-10-23
      相关资源
      最近更新 更多