–>
This is how to use 256(or 16bit, 24bit)-color bitmaps in ImageLists for
ListViews, TreeViews, etc…
Usually you use something like this to load/create your imagelist:
hScreens = ImageList_LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(BMP_SCREENS), 100, CLR_NONE, CLR_NONE, IMAGE_BITMAP, LR_LOADTRANSPARENT);
However it will always convert your bitmap to 16 colors or fail.
now, simply replace it with this code:
HBITMAP hScrBM; hScreens = ImageList_Create(100, 70, ILC_COLOR8, 0, 999); hScrBM = LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(BMP_SCREENS256), IMAGE_BITMAP, 0, 0, LR_LOADTRANSPARENT); ImageList_Add(hScreens, hScrBM, NULL); DeleteObject(hScrBM);
Of course, you can use other values instead of ILC_COLOR8 (256color):
ILC_COLOR16, ILC_COLOR24, … (see “ImageList_Create()” online help in
VC++)
Hope this helps…