我一直在尝试从资源中加载位图,以便将其设置为我的程序控件之一的图标已经有一段时间了,但没有成功。
到目前为止,我做了什么:
首先,我进入了.rc文件的代码,并在相应的BMP部分中添加了所有这样的位图。请注意,所有.bmp文件都保存为256色位图:
IDB_01d BMP "<path>"
之后,我进入Resource.h文件,并为每个位图插入一个定义,如下所示:
#define IDB_01d 2000
添加资源后,这是到目前为止我在代码中尝试的方法:
HBITMAP hbmp = LoadBitmap(m_hInstance, MAKEINTRESOURCE(IDB_01d));
DWORD lastError = GetLastError();
m_weatherIcon.SetIcon(hbmp);
注意,m_hInstance是我从_tWinMain方法获得的提示。
但是,这不起作用。当前的问题是事实,由于LoadBitmap返回NULL值,因此hbmp为NULL。
我添加了一个呼叫以获取最后的错误,并且我一直得到的错误代码一直是1813。我已经进行了一些研究,似乎HINSTANCE可能是问题所在,但我不知道具体如何。
有什么建议吗?
最佳答案
您需要在.rc文件中声明
IDB_01d BITMAP "<path>"
但是您使用未知资源类型
BMP