我正在尝试从资源而不是文件位置加载位图。我正在使用可视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);
答案 0 :(得分:1)
MAKEINTRESOURCE
宏接受整数资源ID,因此它应为MAKEINTRESOURCE(IDB_BITMAP1)
,其中IDB_BITMAP1
是资源标识符宏(可能来自resource.h
)。您还应该致电GetLastError
找出失败原因。