将位图图像加载到 WINApi C++ 并显示

Posted

技术标签:

【中文标题】将位图图像加载到 WINApi C++ 并显示【英文标题】:Load Bitmap Image into WINApi C++ and Display 【发布时间】:2014-03-28 17:02:26 【问题描述】:

我正在使用 WINApi C++ Unicode 构建一个 GUI。我的最终目标不是从文件中加载 .bmp 图像,因为我会将 GUI 作为.exe 文件传递​​。

是否可以将.bmp 图像加载到 GUI 的资源中,并在每次我想在我的 GUI 上显示时从那里加载图像?

【问题讨论】:

看起来像你需要的:jelovic.com/articles/resources_in_visual_studio.htm 这是.NET。我正在使用 C++。任何其他建议@AndyT? 【参考方案1】:

当然。有一种专门用于位图的资源类型。只需在 Visual Studio 资源视图中使用“添加资源”即可。 MSDN 中应该提供有关如何使用它的示例代码。

【讨论】:

【参考方案2】:

把这个放到资源(.rc)文件中

IDI_NORMAL    BITMAP    "Normal.bmp"

然后这个在 main colde (.cpp) 文件中

HBITMAP hBMP = (HBITMAP)LoadBitmapW(hInst, MAKEINTRESOURCEW(IDI_NORMAL)); //test bitmap

HDC hMemDC = CreateCompatibleDC(hdc);
::SelectObject(hMemDC, hBMP);
BitBlt(hdc, 0, 0, 1000, 1000, hMemDC, 0, 0, SRCCOPY);
::DeleteDC(hMemDC);

完美运行

【讨论】:

以上是关于将位图图像加载到 WINApi C++ 并显示的主要内容,如果未能解决你的问题,请参考以下文章

c++:如何使用 sdl 将位图加载到 opengl 中的多维数据集中?

Android:如何在不加载完整位图的情况下将流式图像即时渲染到 ImageView?

如何在 Android 中使位图加载更快?

为啥在 glfw 窗口上没有使用 opengl 显示位图图像?在 C++ 中读取位图图像文件时出现问题

如何通过 Bitmap::GetHBITMAP 将位图转换为带有 alpha 的 HBITMAP?

将网络摄像头中的帧捕获为位图 - VFW - WINAPI