从资源加载bmp

时间:2019-01-15 21:39:46

标签: c++ visual-studio-2015 mfc loadimage

我正在尝试从资源而不是文件位置加载位图。我正在使用可视stuidos,并且已将相同的位图导入到rc中。我尝试使用资源版本时,LoadImage返回NULL。我的语法错误吗?还是我缺少其他步骤?请为我指出正确的方向。预先感谢。

HBITMAP mhbitmap;

// Loading from a file works
mhbitmap = (HBITMAP)LoadImage(NULL, L"sblue.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
mpiccontrol.SetBitmap(mhbitmap);
if (mhbitmap == NULL) {
    MessageBox(L"null", L"from file", NULL);
}

文件版本的加载显示图像,而资源版本的显示图像。

mpiccontrol.SetBitmap(mhbitmap);

// My attempt at loading from resource
mhbitmap = (HBITMAP)LoadImage(NULL, MAKEINTRESOURCE("IDB_BITMAP1"), IMAGE_BITMAP, 0, 0, 0);
if (mhbitmap == NULL) {
    MessageBox(L"null", L"from rc", NULL);
}

mpiccontrol.SetBitmap(mhbitmap);

1 个答案:

答案 0 :(得分:1)

MAKEINTRESOURCE宏接受整数资源ID,因此它应为MAKEINTRESOURCE(IDB_BITMAP1),其中IDB_BITMAP1是资源标识符宏(可能来自resource.h)。您还应该致电GetLastError找出失败原因。