c++ - 如何添加文件以在代码块中构建和读取它们?

标签 c++ winapi codeblocks

我想编写只有 exe 的应用程序并且我必须加载一个图像。我必须做什么?

项目经理:https://dawidsk.gamejolt.io/images/ScreenShot_20190727141153.png

(抱歉英语不好)

加载图片代码:

void AddControls(HWND hWnd)
{
    hWarning = CreateWindowW(L"Static", NULL, WS_VISIBLE | WS_CHILD | SS_BITMAP, 0, 0, windowHeight, windowWidth, hWnd, NULL, NULL, NULL);
    SendMessageW(hWarning, STM_SETIMAGE, IMAGE_BITMAP,(LPARAM) hWarningImage);
}

void LoadImages()
{
    hWarningImage = (HBITMAP)LoadImageW(NULL, L"warning.bmp", IMAGE_BITMAP, windowHeight, windowWidth, LR_LOADFROMFILE);
}

当我从 exe 的根文件夹中删除 warning.bmp 时,它没有显示。

编辑: 现在我知道我必须使用 resource.rc。如何从中加载图像?

最佳答案

你可以按照这个文档来加载它: https://learn.microsoft.com/en-us/windows/win32/menurc/bitmap-resource

语法:

nameID BITMAP "warning.bmp"

编辑:

在此之后,您可以使用实例加载位图。

用一个值定义你的nameID,比如

#define nameID 40001

然后使用 nameID 和实例句柄加载图像,删除LR_LOADFROMFILE:

LoadImageW(hInstance,MAKEINTRESOURCE(nameID),IMAGE_BITMAP, windowHeight, windowWidth, 0);

关于c++ - 如何添加文件以在代码块中构建和读取它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57232119/

相关文章:

c++ - 在作为函数参数的句柄上调用 CloseHandle?

c++ - 鼠标指针渲染器

java - java 中的 MAGIMAGEHEADER

'//' 和 '///' 之间的 C++ 区别

c++ - C++错误:尚未声明“Line2”

使用 GLEW、assimp、SDL2 和带有 CodeBlocks 的 CMake 的 C++ OpenGL 项目设置

c++ - OpenAL 失真的常见来源?

c++ - std::ostringstream 打印 c 字符串的地址而不是其内容

c++ - 正确使用 offsetof 宏

c++ - 面向侵入式数据结构的面向对象设计