我想知道如何在 MFC 代码中从 CImage
获取 CBitmap
。
问题是MSDN告诉我使用 CImage::m_hBitmap
从句柄生成一个 CBitmap
。但不幸的是,CImage::m_hBitmap
对 CImage
是私有(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
,因此从 CImage
到 HBITMAP
的转换无需用户干预即可完成。
在头文件 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/