我一直在尝试从资源中加载位图,以便将其设置为我的程序控件之一的图标已经有一段时间了,但没有成功。

到目前为止,我做了什么:

首先,我进入了.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

10-07 19:28
查看更多