将HBITMAP转换为BITMAP

8

无法理解这段代码存在什么问题:

HBITMAP bm = 0; 
BITMAP Bitmap;
bm = (HBITMAP)LoadImage (0, path, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
int error = GetObject( &Bitmap, sizeof( BITMAP  ), &bm );

LoadImage函数返回非空指针。然而GetObject返回0,表示出现错误。 我想从HBITMAP指针中获取尺寸信息和图像数据(该指针可以作为参数传递,因此我无法更改加载位图文件的方式)。

1个回答

12

也许将参数放在正确的位置会有所帮助:

HBITMAP bm = 0; 
BITMAP Bitmap;
bm = (HBITMAP)LoadImage (0, path, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
int error = GetObject( bm, sizeof( BITMAP ), &Bitmap ); // << NOTE ORDERING

查看有关GetObject()的文档以获取更多信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接