我想知道如何CBitmap
从CImage
MFC 代码中获取 a 。
问题是MSDN告诉我使用from 句柄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);
Run Code Online (Sandbox Code Playgroud)
谢谢!
m_hBitmap
要直接使用该对象来获取句柄CImage
。MSDN 上的在线帮助似乎未正确更新。
MFC 开发人员添加了一个运算符HBITMAP
,因此从CImage
到的转换HBITMAP
无需用户干预即可进行。
允许访问m_hBitmap
header 的内联代码atlimage.h
:
inline CImage::operator HBITMAP() const throw()
{
return (m_hBitmap);
}
Run Code Online (Sandbox Code Playgroud)
为了有一个工作代码image.m_hBitmap
必须替换为image
only。
CImage image;
// Code to create load/create image goes here
// ...
CBitmap* pBitmap = CBitmap::FromHandle(image);
Run Code Online (Sandbox Code Playgroud)
就是这样。
编辑:我也找到了替代解决方案,请参阅此处。