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

  • Bonita BPM 7 is here! And for you, an in-depth tour of its innovation. In this webinar, we'll guide you through the brand-new features of this release and demonstrate them live. You will: Discover how business application implementation and maintenance is now even easier, with decoupling of process logic, business data and user interface Learn how to create "living applications" for business processes which present business data in custom views We recommend that you watch the half-hour recording of our …

  • Moving from an on-premises environment to Office 365 does not remove the need to plan for disruptions or reduce the business risk requirements for protecting email services. If anything, some risks increase with a move to the cloud. Read how to ease the transition every business faces if considering or already migrating to cloud email. This white paper discusses: Setting expectations when migrating to Office 365 Understanding the implications of relying solely on Exchange Online security Necessary archiving …

Most Popular Programming Stories

More for Developers

RSS Feeds

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