How to use 256 Color Bitmaps in ImageList (Win32 SDK solution)

-->

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...



Comments

  • Using hi/truecolor bitmaps in imagelists (MFC solution)

    Posted by Legacy on 02/11/1999 12:00am

    Originally posted by: Bartosz Bien

    Hi,
    
    

    You can also use MFC solution to use hi/truecolor bitmaps in imagelists. The following functions
    do nearly the same that you have achieved using Platform SDK:

    CBitmap::LoadBitmap
    CImageList::Create(int cx, int cy, UINT nFlags, int nInitial, int nGrow)
    CImageList::Add
    CBitmap::DeleteObject

    In CImageList::Create, use ILC_MASK | ILC_COLOR24 (bpp as needed).

    Regards,
    Bartosz Bien

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Live Event Date: March 19, 2015 @ 1:00 p.m. ET / 10:00 a.m. PT The 2015 Enterprise Mobile Application Survey asked 250 mobility professionals what their biggest mobile challenges are, how many employees they are equipping with mobile apps, and their methods for driving value with mobility. Join Dan Woods, Editor and CTO of CITO Research, and Alan Murray, SVP of Products at Apperian, as they break down the results of this survey and discuss how enterprises are using mobile application management and private …

  • On-demand Event Event Date: February 12, 2015 The evolution of systems engineering with the SysML modeling language has resulted in improved requirements specification, better architectural definition, and better hand-off to downstream engineering. Agile methods have proven successful in the software domain, but how can these methods be applied to systems engineering? Check out this webcast and join Bruce Powel Douglass, author of Real-Time Agility, as he discusses how agile methods have had a tremendous …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date