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

标签 c++ mfc

我想知道如何在 MFC 代码中从 CImage 获取 CBitmap

问题是MSDN告诉我使用 CImage::m_hBitmap 从句柄生成一个 CBitmap。但不幸的是,CImage::m_hBitmapCImage 是私有(private)的。我是不是弄错了什么?

MSDN 代码摘录:

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

谢谢!

最佳答案

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

MFC 开发人员添加了运算符 HBITMAP,因此从 CImageHBITMAP 的转换无需用户干预即可完成。

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

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

为了使代码 image.m_hBitmap 必须仅替换为 image

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

就是这样。

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

关于c++ - MFC 7.0 C++ 如何从 CImage 获取 CBitmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15182971/

相关文章:

c++ - 有没有人有更多关于标准输入和标准输出的信息?

c++ - 此处不允许在 '{' 之前定义函数

c++ - 安全终止 Meyers Singleton 中的线程

php - 7zip 字符串/流压缩 PHP/C? .7z 存档中没有文件名/日期存储,每个字节计数

c++ - 未解析的外部符号 - 仅在 Release模式下

c++ - 如何获取文件信息?

c++ - 如何在 MFC C++ 中显示矩阵

VBScript:如何调用在调度映射中用元音定义的函数

c++ - macos是用clang编译器内置还是用xcode ide内置?

c++ - Windows 区域和透明度