Selecting a palette in 256 color mode

I have a bitmap which is drawn in a specific palette, and would like to draw this bitmap using that palette when my application is using 256 color mode.

I have created a bitmap resource, and used VC++'s resource editor's Load Palette dialog to load my palette. My bitmap looks fine in the resource editor's bitmap display. However, also in the resource editor, my bitmap is flattened to 16 color when I use the bitmap in a dialog resource.

My bitmap is also drawn in 16 colors when that dialog is displayed by my application.

What I have tried:
Please do not answer this question, suggesting that I try any of the following, since I already have.

I have a function that returns an HPALETTE, given a bitmap filename. I use this function to get the palette out of a palette.bmp file I intend to ship with my application. I have then tried calling SelectPalette and RealizePalette from the following callbacks:
OnInitDialog, OnPaint, OnQueryNewPalette

None of these worked.

A friend told me that when calling LoadBitmap in 256 color mode, that windows automatically reduces the image to 16 colors, so the information is lost. He says the only way to draw the image in the 256 colors is to create the bitmap yourself and realize the palette in its DC, then draw it yourself into the dialog.

I think there must be a better way.

Can you give me an easy solution that will allow me to draw a bitmap into a dialog, using a specific palette that I have access to?

Your friend is right. LoadBitmap converts a DIB to a DDB. Thus, the palette information is lost. Use LoadImage instead and draw it yourself. You need to select and realize the palette in OnPaint, OnQueryNewPalette and OnPaletteChanged. You can find the example code at http://www.codeguru.com/bitmap/index.shtml.

If I remember right, and I have some code up at work, we use the FindResource/LoadResource to load the image as data, but not with the LoadImage function. Chensu (and your friend with full apologies) is correct on that point.

I'll send the code tomorrow, but it's only a combination of those two functions. (Unless I'm overly mistaken (And I'm normally)).

Here is how to use MFC's automatic Radio Button handling in your dialog boxes and forms. Beginner programmers usually start with a OnClick handler for each radio button and that's just not the right way to go. MFC has a very cool system for handli…

Introduction:
Dialogs (1) modal - maintaining the database.
Continuing from the ninth article about sudoku.
You might have heard of modal and modeless dialogs. Here with this Sudoku application will we use one of each type: a modal dialog …

In this video you will find out how to export Office 365 mailboxes using the built in eDiscovery tool. Bear in mind that although this method might be useful in some cases, using PST files as Office 365 backup is troublesome in a long run (more on t…