【问题标题】:Load HBITMAP from *.bmp file in Win32 project从 Win32 项目中的 *.bmp 文件加载 HBITMAP
【发布时间】:2013-01-15 12:41:54
【问题描述】:

是否可以仅使用 WINAPI 函数将 *.bmp 文件加载到 Win32 项目中的 HBITMAP 中?

【问题讨论】:

    标签: c++ winapi bmp hbitmap


    【解决方案1】:

    是的,可以只使用标准的 win32 库。

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

    hBMPBITMAP 的句柄,您可以随意使用。

    注意:传递 NULL 作为第一个参数很重要,来自文档:

    hinst [输入,可选]

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

    来自msdn documentation for LoadImage

    【讨论】:

    • 这是一个外部库。
    • 呃,我猜外部是指第三方库。会编辑。由于它是一个 Win32 项目,它已经使用了 Winapi。感谢您的回答!
    • @Zoidberg Win32 项目中的标准库是什么? :S
    • 只是一个更正,hInst 需要为 NULL 才能从文件加载。我刚刚在文档中阅读了它。 要加载独立资源(图标、光标或位图文件),例如 c:\myimage.bmp,请将此参数设置为 NULL。
    【解决方案2】:

    是的,您可以使用 OleLoadPictureFromPath 或其他任何名称。核实。文档对于支持的格式可能仍然不一致和错误,但在现代 Windows 中也支持 JPEG 和 PNG。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-03
      • 2013-02-14
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-02
      相关资源
      最近更新 更多