在Win32项目中从*.bmp文件加载HBITMAP

8
在Win32项目中,使用仅WINAPI函数是否可以将*.bmp文件加载到HBITMAP中?
2个回答

19

是的,使用标准的win32库就可以实现。

HBITMAP hBMP = (HBITMAP) LoadImage( NULL, "Your/ImagePath/a.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);

hBMP是用作所需位图的句柄。

注意: 从文档中重要的一点是将第一个参数设置为NULL:

 

hinst [in, optional]

    

为了加载独立的资源(图标,光标或位图文件),例如c:\myimage.bmp,请将此参数设置为NULL。

来自LoadImage的msdn文档.


那是一个外部库。 - user142019
额,我指的是第三方库。我会编辑一下。由于这是一个Win32项目,它已经使用了Winapi。谢谢你的回答! - sashoalm
@Zoidberg Win32项目中的标准库是什么? :S - Theocharis K.
只需要一个更正,hInst在从文件加载时需要设置为NULL。我刚在文档中读到了这一点。要加载独立资源(图标、光标或位图文件)——例如,c:\myimage.bmp——请将此参数设置为NULL。 - sashoalm

0

是的,你可以使用OleLoadPictureFromPath或者其他类似的方法。查一下吧。文档可能仍然不一致并且关于支持的格式也有错误,但在现代Windows中也支持JPEG和PNG。


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