将位图图像加载到 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?
为啥在 glfw 窗口上没有使用 opengl 显示位图图像?在 C++ 中读取位图图像文件时出现问题