【问题标题】:How to convert Gdiplus::Bitmap* object into HBITMAP如何将 Gdiplus::Bitmap* 对象转换为 HBITMAP
【发布时间】:2014-03-17 16:08:45
【问题描述】:

我正在使用 MFC,现在我有一个位图对象,通过以下方式获得:

Gdiplus::Bitmap* bmp = Gdiplus::Bitmap::FromStream(pStream);

如何将此 bmp 对象转换为 HBITMAP?我用过:

HBITMAP hBitmap = NULL;
bmp->GetHBITMAP(Color::White, &hBitmap);

但它不能,hBitmap 总是返回 0xcccccccc 并注意到 {unused=??? }。我能做什么?

【问题讨论】:

  • 操作的状态返回码是什么?

标签: bitmap mfc hbitmap


【解决方案1】:

不是直接的答案,而是一种将流加载到位图中的方法。它根本不需要 GDI+。

  1. 使用CImage::Load
  2. 比使用HBITMAP 转换运算符

CImage 是来自 ATL 的 HBITMAP 对象的直接超薄包装器。

【讨论】:

  • 谢谢xMRi,你能帮我解决这个问题吗? link
  • CImage 是 ATL/MFC 的一部分,在 Visual Studio 的 Express 版本中不可用,而 GDI+ 即使您根本不使用 VS 也可用...
猜你喜欢
  • 2013-02-23
  • 2011-06-12
  • 2012-12-12
  • 1970-01-01
  • 1970-01-01
  • 2010-09-25
  • 2014-08-29
  • 2018-04-25
  • 2013-07-10
相关资源
最近更新 更多