将BITMAP转换为HBITMAP

时间:2013-03-07 21:47:19

标签: c++ windows winapi

如果我有BITMAP名为bitmap,如何将其转换为HBITMAP?

到目前为止,我已经尝试过:

HBITMAP hbm = (HBITMAP)&bitmap; //doesn't work

HANDLE hand = &bitmap;
HBITMAP hbm = hand; //doesn't work

CImage cim;
cim.Attach(&bitmap);
HBITMAP hbm = cim.Detach(); //definitely doesn't work

CBitmap cbm;
cbm.Attach(bitmap);
CImage cim;
cim.Attach(cbm.Detach());
HBITMAP hbm = cbm.Detach(); //desperate I know, horribly failed

必须有一些简单的,一行的方式来做到这一点,但我找不到它。我可以得到一些帮助吗?

1 个答案:

答案 0 :(得分:8)

致电CreateBitmapIndirect通过BITMAP。嘿presto,返回HBITMAP

对于它的价值,自己寻找答案的好方法是转到描述BITMAP的MSDN主题。向下滚动到页面底部,然后查看另请参阅部分。使用该类型的最重要的函数将在那里列出,确实CreateBitmapIndirect就在那里。这总是一种有用的方法,可以找出任何特定的Win32类型可以做什么。