从资源文件创建图像列表 - win32

时间:2013-05-13 13:48:35

标签: winapi bitmap imagelist

我在.rc文件中有几个图像,例如:

IDB_COPY BITMAP "copy.bmp"
IDB_CUT BITMAP "cut.bmp"
IDB_PASTE BITMAP "paste.bmp"

我想将它们全部加载到ImageList中 如果我会写

HIMAGELIST hImageList = ImageList_LoadBitmap(hInstance, MAKEINTRESOURCEW(IDB_COPY), 16, 0, RGB(255, 0, 255));

它只加载第一个位图,如何加载它们?

2 个答案:

答案 0 :(得分:4)

此代码实现:

HIMAGELIST hImageList = ImageList_LoadBitmap(hInstance, MAKEINTRESOURCEW(IDB_CUT), 16, 0, RGB(255, 0, 255));

ImageList_Add(hImageList, LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_COPY)), NULL);
ImageList_Add(hImageList, LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_PASTE)), NULL);

נ.ב. אםאיןאנילימילי

答案 1 :(得分:0)

如果您使用的是C ++ 11或更高版本,我建议您使用std::map

map<string,HBITMAP> hbm; // #include <map>
hbm["CUT"]=LoadBitmap(hInstance,MAKEINTRESOURCEW(IDB_CUT));
// ...
// or
map<int,HBITMAP> hbm1;
hbm1[0]=LoadBitmap(hInstance,MAKEINTRESOURCEW(IDB_CUT));
//...

我认为它更灵活方便,因为不同尺寸的图像也可以被接受。