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

问题描述 投票:2回答:2

我在.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));

仅加载第一个位图,如何全部加载?

winapi bitmap imagelist
2个回答
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);

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));
//...

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

© www.soinside.com 2019 - 2024. All rights reserved.