我在.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));
仅加载第一个位图,如何全部加载?
此代码使其成为:
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);
如果使用的是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));
//...
我认为它更加灵活方便,因为也可以接受不同尺寸的图像。